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