CreateSign1.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package com.happy.unitil;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.happy.common.http.HttpsClient;
  4. import java.io.UnsupportedEncodingException;
  5. import java.security.MessageDigest;
  6. import java.security.NoSuchAlgorithmException;
  7. public class CreateSign1 {
  8. private static final char hexDigits[] = { '0', '1', '2', '3', '4', '5',
  9. '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
  10. public static String MD5(String s) {
  11. return MD5(s,"utf-8");
  12. }
  13. public static String MD5(String s, String charset) {
  14. try{
  15. MessageDigest messagedigest = MessageDigest.getInstance("MD5");
  16. messagedigest.reset();
  17. byte abyte0[] = messagedigest.digest(s.getBytes(charset));
  18. return byteToString(abyte0);
  19. } catch (NoSuchAlgorithmException e) {
  20. e.printStackTrace();
  21. } catch (UnsupportedEncodingException e) {
  22. e.printStackTrace();
  23. }
  24. return "";
  25. }
  26. private static String byteToString(byte abyte0[]) {
  27. int i = abyte0.length;
  28. char ac[] = new char[i * 2];
  29. int j = 0;
  30. for (int k = 0; k < i; k++) {
  31. byte byte0 = abyte0[k];
  32. ac[j++] = hexDigits[byte0 >>> 4 & 0xf];
  33. ac[j++] = hexDigits[byte0 & 0xf];
  34. }
  35. return new String(ac);
  36. }
  37. public static void main(String[] args) {
  38. //密钥由艾停车提供,密钥和车场号一一对应
  39. String ukey = "K1DIXZCLWNO0J0WV";
  40. JSONObject data = new JSONObject(true);
  41. data.put("uid","大门入口");
  42. data.put("in_time",1611731098);
  43. data.put("car_number","赣AE3434");
  44. data.put("c_type","临时车");
  45. data.put("in_channel_id","大门入口");
  46. data.put("order_id","1902");
  47. data.put("force_update",1);
  48. data.put("empty_plot",879);
  49. data.put("car_type","");
  50. data.put("source","ist");
  51. data.put("pic_addr","http://ist-falcon.oss-cn-shenzhen.aliyuncs.com/order-images/31809/in/1902.jpg?Expires=1611817499&OSSAccessKeyId=LTAIQQrl6GICP0QX&Signature=FnKZNrQ5nkdJlhgVTYp4v7Q3ejY%3D");
  52. // 生成带签名的字符串并使用MD5生成签名,然后转大写
  53. String sign = data.toJSONString()+"key="+ukey;
  54. sign = MD5(sign).toUpperCase();
  55. System.out.println(sign);//242441AAC1911DB6E47A942A2B6477D5
  56. }
  57. }