CreateSign1.java 2.4 KB

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