MD5,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2、MD3、MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著名的公钥加密算法标准RSA的第一设计者R.Rivest于上个世纪90年代初开发出来的。MD5的最大作用在于,将不同格式的大容量文件信息在用数字签名
软件来签署私人密钥前"压缩"成一种保密的格式,关键之处在于这种"压缩"是不可逆的。
javaDemo:Md5Demo.java
package com.zsl.algorithm;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Md5Demo {
/**
*
* @param s:要进行加密的字符串
* @return 字符串的md5值
*/
public static String getMd5(String s) {
char hexChar[] = {'0', '1', '2', '3', '4', '5', '6',
'7', '8' , '9', 'a', 'b', 'c', 'd', 'e', 'f'};
//md5加密算法的加密对象为字符数组,这里是为了得到加密的对象
byte[] b = s.getBytes();
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(b);
byte[] b2 = md.digest();// 进行加密并返回字符数组
char str[] = new char[b2.length << 1];
int len = 0;
//将字符数组转换成十六进制串,形成最终的密文
for (int i = 0; i < b2.length; i++) {
byte val = b2
;
str[len++] = hexChar[(val >>> 4) & 0xf];
str[len++] = hexChar[val & 0xf];
}
return new String(str);
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
String res = getMd5("20130702");
System.out.println(res + "|size = " + res.length());
}
}