package com.base.utils;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.util.Iterator;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
import java.util.Map.Entry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SHA1Util {
protected static final Logger logger = LoggerFactory.getLogger(SHA1Util.class);
public SHA1Util() {
}
public static String getTimeStamp() {
return String.valueOf(System.currentTimeMillis() / 1000L);
}
public static String createSHA1Sign(SortedMap<String, String> signParams) {
StringBuffer sb = new StringBuffer();
Set es = signParams.entrySet();
Iterator it = es.iterator();
while(it.hasNext()) {
Entry params = (Entry)it.next();
String k = (String)params.getKey();
String v = (String)params.getValue();
sb.append(k + "=" + v + "&");
}
String params1 = sb.substring(0, sb.lastIndexOf("&"));
System.out.println("--拼接计算signature的入参-->>"+params1);
return getSha1(params1);
}
public static String getSha1(String str) {
if(str != null && str.length() != 0) {
char[] hexDigits = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
try {
MessageDigest e = MessageDigest.getInstance("SHA1");
e.update(str.getBytes("UTF-8"));
byte[] md = e.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 & 15];
buf[k++] = hexDigits[byte0 & 15];
}
return new String(buf);
} catch (Exception var9) {
logger.error("--计算signature--getSha1 error", var9);
throw new RuntimeException(var9.getMessage(), var9);
}
} else {
return null;
}
}
}
|