package com.imooc.security.sha;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.codec.digest.DigestUtils;
import org.bouncycastle.crypto.Digest;
import org.bouncycastle.crypto.digests.SHA1Digest;
import org.bouncycastle.crypto.digests.SHA224Digest;
/**
* 消息摘要加密算法
* @author Bingo_Ge
*
*/
public class ImoocSHA {
private static String src = "imooc security sha";
public static void main(String[] args) {
jdkSHA1();
bcSHA1();
bcSHA224();
ccSHA1();
}
private static void ccSHA1() {
System.out.println("cc sha-1:" + DigestUtils.sha1Hex(src.getBytes()));
}
private static void bcSHA224() {
Digest digest = new SHA224Digest();
digest.update(src.getBytes(), 0, src.getBytes().length);
byte[] sha1Bytes = new byte[digest.getDigestSize()];
digest.doFinal(sha1Bytes, 0);
System.out.println("bc sha-224:" + org.bouncycastle.util.encoders.Hex.toHexString(sha1Bytes));
}
private static void bcSHA1() {
Digest digest = new SHA1Digest();
digest.update(src.getBytes(), 0, src.getBytes().length);
byte[] sha1Bytes = new byte[digest.getDigestSize()];
digest.doFinal(sha1Bytes, 0);
System.out.println("bc sha-1:" + org.bouncycastle.util.encoders.Hex.toHexString(sha1Bytes));
}
private static void jdkSHA1() {
try {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(src.getBytes());
System.out.println("jdk sha-1:" + Hex.encodeHexString(md.digest()));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
}
消息摘要加密算法SHA
最新推荐文章于 2021-08-26 16:07:16 发布
本文介绍了SHA系列加密算法的实现方式,包括使用Java内置的MessageDigest类进行SHA-1加密、利用BouncyCastle库实现SHA-1及SHA-224加密,并通过Apache Commons Codec库完成SHA-1加密。
1万+

被折叠的 条评论
为什么被折叠?



