1.SHA1 介绍

SHA-1(Secure Hash Algorithm 1)是一种安全散列算法,是美国国家安全局设计,并由美国国家标准与技术研究院(NIST)发布的一种加密散列函数。SHA-1基于MD5算法设计,但增加了安全性以防止碰撞攻ji(即两个不同的输入产生相同的输出散列值)。然而,随着时间的推移,研究人员已经成功找到了SHA-1的碰撞,这意味着SHA-1已经不再被认为是一个安全的加密算法,特别是对于需要高安全性的应用(如数字签名)来说。

尽管SHA-1已被视为不安全,但它在一些旧的系统和应用中仍然被广泛使用。

2.代码

public static String getSha1(String str) {
    char hexDigits[] = {
        '0',
        '1',
        '2',
        '3',
        '4',
        '5',
        '6',
        '7',
        '8',
        '9',
        'a',
        'b',
        'c',
        'd',
        'e',
        'f'
    };
    try {
        MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
        mdTemp.update(str.getBytes("UTF-8"));
        byte[] md = mdTemp.digest();
        int j = md.length;
        char buf[] = new char[j * 2];
        int k = 0;
        for (int i = 0; i < j; i++) {
            byte byte0 = md[i];
            buf[k++] = hexDigits[byte0 >>> 4 & 0xf];
            buf[k++] = hexDigits[byte0 & 0xf];
        }
        return new String(buf);
    } catch (Exception e) {
        return null;
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.