package 信息摘要;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.apache.commons.codec.binary.Hex;
import org.bouncycastle.crypto.Digest;
import org.bouncycastle.crypto.digests.MD4Digest;
import org.bouncycastle.crypto.digests.MD5Digest;
public class md {
private static String src = "imooc";
/*
* md家族 md5 md4 md2 128位 org.apache.commons.codec org.bouncycastle JDK实现
* cc简化操作 bc补充
*/
public static void main(String[] args) {
jdkMD5();
jdkMD2();
bcMD4();
bcMD5();
}
public static void jdkMD5() {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] md5Bytes = md.digest(src.getBytes());
System.out.println("JDK MD5:" + Hex.encodeHexString(md5Bytes));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void jdkMD2() {
try {
MessageDigest md = MessageDigest.getInstance("MD2");
byte[] md2byte = md.digest(src.getBytes());
System.out.println("JDK MD2:" + Hex.encodeHexString(md2byte));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void bcMD4() {
Digest digest = new MD4Digest();
digest.update(src.getBytes(), 0, src.getBytes().length);
byte[] md4Bytes = new byte[(digest.getDigestSize())];
digest.doFinal(md4Bytes, 0);
System.out.println("BC 实现MD4:" + Hex.encodeHexString(md4Bytes));
}
/*
* bc是封装了jdk的实现,只是简化了
*/
private static void bcMD5() {
Digest digest = new MD5Digest();
digest.update(src.getBytes(), 0, src.getBytes().length);
byte[] md4Bytes = new byte[(digest.getDigestSize())];
digest.doFinal(md4Bytes, 0);
System.out.println("BC 实现MD5:" + Hex.encodeHexString(md4Bytes));
}
}
package 信息摘要;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.apache.commons.codec.binary.Hex;
import org.bouncycastle.crypto.Digest;
import org.bouncycastle.crypto.digests.SHA1Digest;
public class SHA {
/*
* SHA-1 SHA-2(SHA-256, SHA_224,SHA-512....)
*/
private static String src = "imooc";
public static void main(String[] args) {
jdkSHA1();
bcSHA1();
bcSHA224();
}
public static void jdkSHA1() {
try {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(src.getBytes());
System.out.println("jdk sha1:" + Hex.encodeHexString(md.digest()));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void bcSHA1() {
Digest digest = new SHA1Digest();
digest.update(src.getBytes(), 0, src.getBytes().length);
byte[] sha1Bytes = new byte[(digest.getDigestSize())];
/*
* @params 产生的结果输出到哪里,偏移量 如果是0就是完整的输出
*/
digest.doFinal(sha1Bytes, 0);
System.out.println("bc 实现SHA1:" + Hex.encodeHexString(sha1Bytes));
}
public static void bcSHA224() {
Digest digest = new SHA1Digest();
digest.update(src.getBytes(), 0, src.getBytes().length);
byte[] SHA224Bytes = new byte[(digest.getDigestSize())];
/*
* @params 产生的结果输出到哪里,偏移量 如果是0就是完整的输出
* 批量重命名变量:Alt+Shift+R组合键
*/
digest.doFinal(SHA224Bytes, 0);
System.out.println("bc 实现SHA224:" + Hex.encodeHexString(SHA224Bytes));
}
}
信息摘要
最新推荐文章于 2022-12-06 23:25:22 发布