MD摘要算法
import static org.junit.Assert.*;
import java.security.MessageDigest;
//消息摘要
public class MDCoder
{
//md2消息摘要处理
public static byte[]
encodeMD2(byte[] data) throws Exception{
//初始化MessageDigest
MessageDigest md=MessageDigest. getInstance("md2");
//执行消息摘要,返回散列值
return md.digest(data);
}
//md5消息摘要处理
public static byte[]
encodeMD5(byte[] data) throws Exception{
//
MessageDigest md=MessageDigest. getInstance("md5");
//返回散列值
return md.digest(data);
}
//十六进制设置
public static String
encodeMDHex(byte[] data) throws Exception{
//执行消息摘要
byte[]
b=encodeMD2(data);
return new String(Hex.encode(b)); //作十六进制处理
}
public static byte[]
encodeMD5(String data)throws Exception{
return DigestUtils.md5(data);
}
public static String
encodeMD5Hex(String data){
return DigestUtils.md5Hex(data);
}
public static final void main(String[]
args) throws Exception{
String str= "MD2消息摘要" ;
byte[]
data1=encodeMD2(str.getBytes());
byte[]
data2=encodeMD2(str.getBytes());
//校验
assertArrayEquals(data1,data2);//不一致时,会抛出异常。
str= "MD5消息摘要" ;
byte[]
data11=encodeMD5(str.getBytes());
byte[]
data21=encodeMD5(str.getBytes());
assertArrayEquals(data11,data21);
}
}