MD5Util.java 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package com.steerinfo.dil.util;
  2. import org.bouncycastle.crypto.digests.SHA256Digest;
  3. import org.bouncycastle.jcajce.provider.digest.SHA256;
  4. import java.io.UnsupportedEncodingException;
  5. import java.security.MessageDigest;
  6. import java.security.NoSuchAlgorithmException;
  7. import java.text.SimpleDateFormat;
  8. import java.util.Date;
  9. import java.util.SimpleTimeZone;
  10. /**
  11. * @author luobang
  12. * @create 2021-10-29 10:16
  13. */
  14. public class MD5Util {
  15. /***
  16. * MD5加密 生成32位md5码
  17. *
  18. * @param inStr 待加密字符串
  19. * @return 返回32位md5码
  20. */
  21. public static String md5Encode(String inStr) throws Exception {
  22. MessageDigest md5 = null;
  23. try {
  24. md5 = MessageDigest.getInstance("MD5");
  25. } catch (Exception e) {
  26. System.out.println(e.toString());
  27. e.printStackTrace();
  28. return "";
  29. }
  30. byte[] byteArray = inStr.getBytes("UTF-8");
  31. byte[] md5Bytes = md5.digest(byteArray);
  32. StringBuffer hexValue = new StringBuffer();
  33. for (int i = 0; i < md5Bytes.length; i++) {
  34. int val = ((int) md5Bytes[i]) & 0xff;
  35. if (val < 16) {
  36. hexValue.append("0");
  37. }
  38. hexValue.append(Integer.toHexString(val));
  39. }
  40. return hexValue.toString();
  41. }
  42. public static String formatTimeTmp(){
  43. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
  44. Date date = new Date();
  45. String timeTmp = simpleDateFormat.format(date);
  46. return timeTmp;
  47. }
  48. public static String sign(String AppId,String secretKey) throws Exception {
  49. String instr = AppId + secretKey + formatTimeTmp();
  50. return md5Encode(instr);
  51. }
  52. /**
  53. *测试
  54. * @throws Exception
  55. */
  56. public static void main(String[] args) throws Exception {
  57. String ApiId = "EUCP-EMY-SMS1-10QNI";
  58. String sererct = "EE20B0B28B75E567";
  59. System.out.println(formatTimeTmp());
  60. String appkey = "p3w1aUqaAx7jDaXsg5bss4";
  61. String mastersecret = "ENLIzfdMSc55VghR97lqJ4";
  62. String sign = appkey + formatTimeTmp() + mastersecret;
  63. //SHA256 sha256 = new SHA256();
  64. //System.out.println(sha256(1))
  65. System.out.println(getSHA256StrJava(sign));
  66. }
  67. public static String getSHA256StrJava(String str){
  68. MessageDigest messageDigest;
  69. String encodeStr = "";
  70. try {
  71. messageDigest = MessageDigest.getInstance("SHA-256");
  72. messageDigest.update(str.getBytes("UTF-8"));
  73. encodeStr = byte2Hex(messageDigest.digest());
  74. } catch (NoSuchAlgorithmException e) {
  75. e.printStackTrace();
  76. } catch (UnsupportedEncodingException e) {
  77. e.printStackTrace();
  78. }
  79. return encodeStr;
  80. }
  81. /**
  82. * 将byte转为16进制
  83. * @param bytes
  84. * @return
  85. */
  86. private static String byte2Hex(byte[] bytes){
  87. StringBuffer stringBuffer = new StringBuffer();
  88. String temp = null;
  89. for (int i=0;i<bytes.length;i++){
  90. temp = Integer.toHexString(bytes[i] & 0xFF);
  91. if (temp.length()==1){
  92. //1得到一位的进行补0操作
  93. stringBuffer.append("0");
  94. }
  95. stringBuffer.append(temp);
  96. }
  97. return stringBuffer.toString();
  98. }
  99. }