java的sha1加密,转化为python版本

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()
posted @ 2019-12-13 11:23  秋寻草  阅读(1016)  评论(0编辑  收藏  举报