12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package com.hssx.utils;
- import java.net.URLDecoder;
- import java.security.MessageDigest;
- import java.util.Iterator;
- import java.util.Map;
- import java.util.Random;
- import java.util.Set;
- import java.util.SortedMap;
- /*
- '============================================================================
- 'api说明:
- 'createSHA1Sign创建签名SHA1
- 'getSha1()Sha1签名
- '============================================================================
- '*/
- public class Sha1Util {
-
- public static void main(String[] args) {
- String str = "jsapi_ticket=kgt8ON7yVITDhtdwci0qecaNzS34qhbQACy88uRm_S0XvT3hcWiBONbLzKnA5o5uPukt2sA3a8bBfETg4TyaQg&noncestr=10907813b97e249163587e6246612e21×tamp=1516590573&url=http://www.dzjy.com/payHtml.html?num=1&code=001EjC0a2q6qoO0fn2Z92E6D0a2EjC0D&state=1";
- String sign = getSha1(str);
- System.out.println(sign);
- }
- public static String getNonceStr() {
- Random random = new Random();
- return MD5Util.MD5Encode(String.valueOf(random.nextInt(10000)), "UTF-8");
- }
- public static String getTimeStamp() {
- return String.valueOf(System.currentTimeMillis() / 1000);
- }
-
- //创建签名SHA1
- public static String createSHA1Sign(SortedMap<String, String> signParams) throws Exception {
- StringBuffer sb = new StringBuffer();
- Set es = signParams.entrySet();
- Iterator it = es.iterator();
- while (it.hasNext()) {
- Map.Entry entry = (Map.Entry) it.next();
- String k = (String) entry.getKey();
- String v = (String) entry.getValue();
- sb.append(k + "=" + v + "&");
- //要采用URLENCODER的原始值!
- }
- String params = sb.substring(0, sb.lastIndexOf("&"));
- System.out.println("sha1之前:" + params);
- System.out.println("SHA1签名为:"+getSha1(params));
- return getSha1(params);
- }
- //Sha1签名
- public static String getSha1(String str) {
- if (str == null || str.length() == 0) {
- return null;
- }
- char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
- 'a', 'b', 'c', 'd', 'e', 'f' };
- try {
- MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
- mdTemp.update(str.getBytes("UTF-8"));
- byte[] md = mdTemp.digest();
- int j = md.length;
- char buf[] = new char[j * 2];
- int k = 0;
- for (int i = 0; i < j; i++) {
- byte byte0 = md[i];
- buf[k++] = hexDigits[byte0 >>> 4 & 0xf];
- buf[k++] = hexDigits[byte0 & 0xf];
- }
- return new String(buf);
- } catch (Exception e) {
- return null;
- }
- }
- }
|