ExpressApiSign.groovy 890 B

12345678910111213141516171819202122232425262728
  1. import org.apache.commons.codec.binary.Base64
  2. import java.security.MessageDigest
  3. class ExpressApiSign {
  4. static String sfGenerateOpenSign(String postData, Long appId, String appKey) {
  5. StringBuilder sb = new StringBuilder()
  6. sb.append(postData)
  7. sb.append("&" + appId + "&" + appKey)
  8. MessageDigest md = MessageDigest.getInstance("MD5")
  9. byte[] md5 = md.digest(sb.toString().getBytes("utf-8"))
  10. int i
  11. StringBuffer buf = new StringBuffer("")
  12. for (int offset = 0; offset < md5.length; offset++) {
  13. i = md5[offset]
  14. if (i < 0) {
  15. i += 256
  16. }
  17. if (i < 16) {
  18. buf.append("0")
  19. }
  20. buf.append(Integer.toHexString(i))
  21. }
  22. String ret = Base64.encodeBase64String(buf.toString().getBytes("utf-8"))
  23. return ret
  24. }
  25. }