SHA 安全散列算法
SHA-1
SHA-2(SHA-224,SHA-256,SHA-384,SHA-512)
SHA-1
SHA-2(SHA-224,SHA-256,SHA-384,SHA-512)
JDK7 之前是没有SHA224的
跟MD算法类似
JDK
public static void JDKSHA1(){
try {
MessageDigest digest = MessageDigest.getInstance("SHA");
digest.update(src.getBytes());
System.out.println("JDK SHA1:"+Hex.encodeHexString(digest.digest()));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
Bouncy Castle
public static void BCSHA1(){
Digest digest = new SHA1Digest();
digest.update(src.getBytes(),0,src.getBytes().length);
byte[] sha1byte = new byte[digest.getDigestSize()];
digest.doFinal(sha1byte, 0);
System.out.println("BC SHA1:"+org.bouncycastle.util.encoders.Hex.toHexString(sha1byte));
}
Commons Codec
public static void CCSHA1(){
System.out.println("CC SHA1:"+DigestUtils.sha1Hex(src));
}
同MD5 CC也是对JDK的SHA做了改进使用更方便
其他的算法就不写了 同MD5一样 BC 的SHA224 也可以跟BC的MD4方式一样有两种方式。