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()