1. package
2.
3. import
4.
5. /**
6. * 对密码进行加密和验证的类
7. */
8. public class
9.
10. //十六进制下数字到字符的映射数组
11. private final static String[] hexDigits = {"0", "1", "2", "3", "4",
12. "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};
13.
14. /** * 把inputString加密 */
15. public static
16. return
17. }
18.
19. /**
20. * 验证输入的密码是否正确
21. * @param password 加密后的密码
22. * @param inputString 输入的字符串
23. * @return 验证结果,TRUE:正确 FALSE:错误
24. */
25. public static boolean
26. if(password.equals(encodeByMD5(inputString))){
27. return true;
28. else{
29. return false;
30. }
31. }
32. /** 对字符串进行MD5加密 */
33. private static
34. if (originString != null){
35. try{
36. //创建具有指定算法名称的信息摘要
37. "MD5");
38. //使用指定的字节数组对摘要进行最后更新,然后完成摘要计算
39. byte[] results = md.digest(originString.getBytes());
40. //将得到的字节数组变成字符串返回
41. String resultString = byteArrayToHexString(results);
42. return
43. catch(Exception ex){
44. ex.printStackTrace();
45. }
46. }
47. return null;
48. }
49.
50. /**
51. * 转换字节数组为十六进制字符串
52. * @param 字节数组
53. * @return 十六进制字符串
54. */
55. private static String byteArrayToHexString(byte[] b){
56. new
57. for (int i = 0; i < b.length; i++){
58. resultSb.append(byteToHexString(b[i]));
59. }
60. return
61. }
62.
63. /** 将一个字节转化成十六进制形式的字符串 */
64. private static String byteToHexString(byte
65. int
66. if (n < 0)
67. 256
68. int d1 = n / 16;
69. int d2 = n % 16;
70. return
71. }
72. }




Java代码
​​

​​


1. package
2.
3. public class
4. public static void
5. "123";
6. "";
7. new
8. "未加密的密码:"+pwd1);
9. //将123加密
10. pwd2 = cipher.generatePassword(pwd1);
11. "加密后的密码:"+pwd2);
12.
13. "验证密码是否下确:");
14. if(cipher.validatePassword(pwd2, pwd1)) {
15. "正确");
16. }
17. else
18. "错误");
19. }
20. }
21. }


结果输出:


Java代码
​​

​​


1. 未加密的密码:123
2. 加密后的密码:202CB962AC59075B964B07152D234B70
3. 验证密码是否下确:正确