Java 对密码MD5
MD5,即"Message-Digest Algorithm 5(信息-摘要算法)";
MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法;
1 import java.math.BigInteger; 2 import java.security.MessageDigest; 3 import java.security.NoSuchAlgorithmException; 4 5 public class Utility { 6 static MessageDigest messageDigest; 7 static String pwd; 8 public static String getMD5(String plainText) { 9 try { 10 //生成一个MD5加密计算摘要 11 messageDigest = MessageDigest.getInstance("MD5"); 12 //用明文跟新消息摘要 13 messageDigest.update(plainText.getBytes()); 14 //digest()最后确定返回md5 hash值,返回值为8位字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符 15 //BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的hash值 ,其中1代表正数,0代表0,-1代表负数 16 pwd = new BigInteger(1, messageDigest.digest()).toString(16); 17 18 } catch (NoSuchAlgorithmException e) { 19 e.printStackTrace(); 20 } 21 return pwd; 22 } 23 }
测试123456 的MD5 为 E10ADC3949BA59ABBE56E057F20F883E