java 的加密方法如下:
- public class EncryptUtil {
- /** 16 进制 : 16 */
- private static final int HEX = 16;
- /** SHA: 0xFF */
- private static final int SHA_FF = 0xFF;
- /** SHA: 0x100 */
- private static final int SHA_100 = 0x100;
- /**
- * SHA(Secure Hash Algorithm, 安全散列算法) 是消息摘要算法的一种, 被广泛认可的 MD5 算法的继任者.
- * SHA 算法家族目前共有 SHA-0,SHA-1,SHA-224,SHA-256,SHA-384 和 SHA-512 五种算法,
- * 通常将后四种算法并称为 SHA-2 算法
- * @param msg 明文
- * @param salt 盐
- * @return 密文
- */
- public static String encryptSHA(final String msg, String salt) {
- StringBuilder sb = new StringBuilder();
- try {
- MessageDigest md = MessageDigest.getInstance("SHA-1");
- md.update(salt.getBytes());
- byte[] bytes = md.digest(msg.getBytes());
- for (int i = 0; i < bytes.length; i++) {
- sb.append(Integer.toString((bytes[i] & SHA_FF) + SHA_100, HEX).substring(1));
- }
- } catch (final Exception e) {
- throw new SmsException(-1001, "", e.getMessage(), e);
- }
- return sb.toString();
- }
- }
对应的 python 加密方法:
- import hashlib
- def encryptSHA(msg, salt):
- """
- 采用 sha1 加密方法, 返回加密结果
- :param msg: 待加密的字符串
- :param salt: 加密盐
- :return: 加密结果
- """
- md = hashlib.sha1(salt)
- md.update(msg)
- return md.hexdigest()
来源: http://www.bubuko.com/infodetail-3329544.html