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

posted on 2016-03-16 16:03  夜雨梧桐  阅读(418)  评论(0编辑  收藏  举报

导航