§封Ja葬va§

MD5加密

/**
* MD5加密
*
* @param s
*            要加密的字符串(不可为null)
*
* @return 返回加密后的密文
*/
public final static String MD5(String pwd) {
   String Digest = "";
   try {
     MessageDigest currentAlgorithm = MessageDigest.getInstance("md5");
     currentAlgorithm.reset();
     byte[] mess = pwd.getBytes();// 获取要加密的byte数组
     byte[] hash = currentAlgorithm.digest(mess);// 获取加密以后的byte数组
     for (int i = 0; i < hash.length; i++) {
        int v = hash[i];
        if (v < 0) {
            v = 256 + v; // 如果 v < 0 > 0 的数,否则不好转换成字符,哪有ASC代码<0的呀
        }
        if (v < 16) {
            Digest += "0"; // 如果该v<1616进制数就是只有个位,例如15转换就成长度就相等了
        }
        Digest += Integer.toString(v, 16).toUpperCase();
     }
     mess = null;
     hash = null;
   } catch (NoSuchAlgorithmException e) {
      e.printStackTrace();
   }
   return Digest;
}

posted on 2009-04-04 01:28 §朱家二少§ 阅读(209) 评论(0)  编辑  收藏 所属分类: J2SE


只有注册用户登录后才能发表评论。


网站导航: