package com.dream.util;
import java.security.MessageDigest;
import java.security.Security;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.codec.digest.DigestUtils;
import org.bouncycastle.crypto.Digest;
import org.bouncycastle.crypto.digests.MD4Digest;
import org.bouncycastle.crypto.digests.MD5Digest;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import junit.framework.TestCase;
/**
* @author zxg
* @see MD加 消息摘要算法 MD2,MD4 128位摘要信息
*/
public class MDTest extends TestCase {
public static String str = "zxg is a boy";
/**
* jdk MD5
*/
public void testJdkMD5() throws Exception {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] md5bytes = md.digest(str.getBytes());
System.out.println(Hex.encodeHexString(md5bytes));
}
/**
* jdk MD2
*/
public void testJdkMD2() throws Exception {
MessageDigest md = MessageDigest.getInstance("MD2");
byte[] md2bytes = md.digest(str.getBytes());
System.out.println(Hex.encodeHexString(md2bytes));
}
/**
* jdk MD4
*/
public void testbcMD4() throws Exception {
Digest digest = new MD4Digest();
digest.update(str.getBytes(), 0, str.getBytes().length);
byte[] md4Bytes = new byte[digest.getDigestSize()];
digest.doFinal(md4Bytes, 0);
System.out.println(org.bouncycastle.util.encoders.Hex
.toHexString(md4Bytes));
}
/**
* bc MD5
*/
public void testbcMD5() throws Exception {
Digest digest = new MD5Digest();
digest.update(str.getBytes(), 0, str.getBytes().length);
byte[] md5Bytes = new byte[digest.getDigestSize()];
digest.doFinal(md5Bytes, 0);// 获取字节从0开始取
System.out.println(org.bouncycastle.util.encoders.Hex
.toHexString(md5Bytes));
}
/**
* bc MD4 2
*/
public void testbcMD42() throws Exception {
Security.addProvider(new BouncyCastleProvider());
MessageDigest md = MessageDigest.getInstance("MD4");
byte[] md4Bytes = md.digest(str.getBytes());
System.out.println(Hex.encodeHexString(md4Bytes));
}
/**
* apache MD5
*/
public void testccMD5() throws Exception {
System.out.println(DigestUtils.md5Hex(str.getBytes()));
}
/**
* apache MD4
*/
public void testccMD4() throws Exception {
System.out.println(DigestUtils.md2Hex(str.getBytes()));
}
}