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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM