纪念SUN

Powered By Andy

MD5初解

 1    public static String md5(String pwd) throws NoSuchAlgorithmException {
 2
 3    StringBuilder sb = new StringBuilder();
 4    MessageDigest digest = MessageDigest.getInstance("md5");
 5    byte[] b = digest.digest(pwd.getBytes());
 6    // 与16进制进行与
 7    // 16 59 1011001
 8    // 59>>>4&0xf 101 | 59&0xf 1011001
 9    // &1111 | &00001111
10    // 结果 101 | 00001001
11    // 16进制 5 9
12    for (byte s : b) {
13        // 左边的四位0101
14        //sb.append(Character.forDigit(
15        //    ((s >>> 4) & 0xf) > 4 ? (s >>> 4) & 0xf ^ 0xe
16        //        : (s >>> 4) & 0xf, 16));
17        sb.append(Character.forDigit((s >>> 4& 0xf16));
18        // 右边的四位1001
19        sb.append(Character.forDigit(s & 0xf16));
20    }

21    // 所有MD5的生面0-f之间的字母与数字
22    return sb.toString().toUpperCase();
23    }

posted on 2010-02-25 20:46 Powered By Andy 阅读(253) 评论(0)  编辑  收藏


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


网站导航:
 

导航

<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

统计

常用链接

留言簿

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜