1
0

OmsSign.java 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package com.kmall.admin.utils.oms;
  2. import java.util.*;
  3. /**
  4. * @author zengjunlin
  5. * @version 1.0
  6. * 2017-10-25 11:04
  7. */
  8. public class OmsSign {
  9. /**
  10. * 加签
  11. * @param params 请求参数
  12. * @param secretKey 密钥
  13. * @return 返回签名字串
  14. */
  15. public static final String sign(Map<String,String> params, String secretKey){
  16. StringBuffer sign = new StringBuffer();
  17. //按升序排列
  18. List<Map.Entry<String, String>> infoIds = new ArrayList<Map.Entry<String, String>>(params.entrySet());
  19. Collections.sort(infoIds, new Comparator<Map.Entry<String, String>>() {
  20. public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) {
  21. return (o1.getKey()).toString().compareTo(o2.getKey());
  22. }
  23. });
  24. for(Map.Entry<String, String> m : infoIds){
  25. sign.append(m.getKey()+ m.getValue());
  26. }
  27. sign.insert(0,secretKey);
  28. return MD5Util.getMd5(sign.toString());
  29. }
  30. /**
  31. * 验签
  32. * @param signature 签名字串
  33. * @param params 请求参数
  34. * @param secretKey 密钥
  35. * @return 签名通过返回true ,不通过返回false
  36. */
  37. public static final boolean verify(String signature, Map<String,String> params, String secretKey){
  38. String sign = sign(params,secretKey);
  39. if(signature.equals(sign)){
  40. return true;
  41. }
  42. return false;
  43. }
  44. }