安全散列算法。
SHA是在MD4的基础上发展的,是MD的继承者。
JDK提供了实现。
package com.jun.SHA;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class JDKsha {
private static String src = "ysj";
public static void main(String[] args) {
jdkSHA();
}
public static void jdkSHA() {
try {
MessageDigest sha = MessageDigest.getInstance("SHA");
sha.update(src.getBytes());
System.out.println(bytes2hex(sha.digest()));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
//将字节数组转换成16进制方法
public static String bytes2hex(byte[] bytes) {
final String HEX = "0123456789abcdef";
StringBuilder sb = new StringBuilder(bytes.length * 2);
for (byte b : bytes) {
// 取出这个字节的高4位,然后与0x0f与运算,得到一个0-15之间的数据,通过HEX.charAt(0-15)即为16进制数
sb.append(HEX.charAt((b >> 4) & 0x0f));
// 取出这个字节的低位,与0x0f与运算,得到一个0-15之间的数据,通过HEX.charAt(0-15)即为16进制数
sb.append(HEX.charAt(b & 0x0f));
}
return sb.toString();
}
}
//结果
d0ff2c5d160fa0aacd5796fb6513097fc2352079