一个实现MD5的简洁的java类源码精华教程
|
| 论文作者:佚名 论文来源:不详 论文发布时间:2006-6-20 2:39:03 论文发布人:chjchjchj |
减小字体
增大字体
由于消息摘要唯一性和不可逆性的特点,所以不失为一种简单的常用的加密手段,比如你可以用md5来加密你的应用中的用户口令。
1. package test; 2. import java.security.MessageDigest; 3. /** 4. * <p>Title: </p> 5. * <p>Description: </p> 6. * <p>Copyright: Copyright (c) 2003</p> 7. * <p>Company: </p> 8. * @author unascribed 9. * @version 1.0 10. */ 11. 12. public class StringUtil { 13. 14. private final static String[] hexDigits = { 15. "0", "1", "2", "3", "4", "5", "6", "7", 16. "8", "9", "a", "b", "c", "d", "e", "f"}; 17. 18. /** 19. * 转换字节数组为16进制字串 20. * @param b 字节数组 21. * @return 16进制字串 22. */ 23. 24. public static String byteArrayToHexString(byte[] b) { 25. StringBuffer resultSb = new StringBuffer(); 26. for (int i = 0; i < b.length; i++) { 27. resultSb.append(byteToHexString(b[i])); 28. } 29. return resultSb.toString(); 30. } 31. 32. private static String byteToHexString(byte b) { 33. int n = b; 34. if (n < 0) 35. n = 256 + n; 36. int d1 = n / 16; 37. int d2 = n % 16; 38. return hexDigits[d1] + hexDigits[d2]; 39. } 40. 41. public static String MD5Encode(String origin) { 42. String resultString = null; 43. 44. try { 45. resultString=new String(origin); 46. MessageDigest md = MessageDigest.getInstance("MD5"); 47. resultString=byteArrayToHexString(md.digest(resultString.getBytes())); 48. } 49. catch (Exception ex) { 50. 51. } 52. return resultString; 53. } 54. 55. public static void main(String[] args){ 56. System.err.println(MD5Encode("a")); 57. } 58. }
在RFC 1321中,给出了Test suite用来检验你的实现是否正确:
MD5 ("") = d41d8cd98f00b204e9800998ecf8427e MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661 MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72 MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0 MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
(出处:
|
|
|
|
|
|
|
| ∷相关技术评论 |
(评论内容只代表网友观点,与本站立场无关!) [查看发表评论...] | |
|
|
| |
站内广告 |
| |
|
站内搜索 |
| |
栏目导航 |
| |
|
|
本月热门 |
| |
|
|
本日热门 |
| |
|
|
|