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;
}
}