MD5Util.java 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package com.jiayue.client.util;
  2. import java.security.MessageDigest;
  3. /**
  4. * MD5 工具类-建议添油加醋的对入参 str 改造一下
  5. *
  6. * @author Administrator
  7. */
  8. public class MD5Util {
  9. //工具类不允许被实例化
  10. private MD5Util() throws Exception {
  11. throw new Exception("异常");
  12. }
  13. public static String encode(String str) {
  14. MessageDigest md5;
  15. try {
  16. md5 = MessageDigest.getInstance("MD5");
  17. } catch (Exception e) {
  18. throw new RuntimeException(e);
  19. }
  20. char[] charArray = str.toCharArray();
  21. byte[] byteArray = new byte[charArray.length];
  22. for (int i = 0; i < charArray.length; i++) {
  23. byteArray[i] = (byte) charArray[i];
  24. }
  25. byte[] md5Bytes = md5.digest(byteArray);
  26. StringBuilder hexValue = new StringBuilder();
  27. for (byte md5Byte : md5Bytes) {
  28. int val = ((int) md5Byte) & 0xff;
  29. if (val < 16) {
  30. hexValue.append("0");
  31. }
  32. hexValue.append(Integer.toHexString(val));
  33. }
  34. return hexValue.toString();
  35. }
  36. /**
  37. * 字符串的MD5
  38. *
  39. * @param plainText 内容
  40. * @param encryption 加密
  41. * @return 加密结果
  42. */
  43. public static String encode(String plainText, String encryption) {
  44. try {
  45. MessageDigest md = MessageDigest.getInstance(encryption);
  46. md.update(plainText.getBytes());
  47. byte[] b = md.digest();
  48. int i;
  49. StringBuilder buf = new StringBuilder();
  50. for (byte value : b) {
  51. i = value;
  52. if (i < 0)
  53. i += 256;
  54. if (i < 16)
  55. buf.append("0");
  56. buf.append(Integer.toHexString(i));
  57. }
  58. return buf.toString();
  59. } catch (Exception e) {
  60. e.printStackTrace();
  61. }
  62. return "";
  63. }
  64. }