import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.util.TreeMap;
public class Test {
public static void main(String[] args) {
try {
String data = "rs1.00RS_VIP4366124567123456788.0564fc865026b76093fa8cae153740af25c8failed1488787";
String key = "Centili";
standardSHA1(data, key);
TreeMap<String, String> urlParams = new TreeMap<String, String>();
urlParams.put("da","1");
urlParams.put("za","w");
urlParams.put("wa","e");
urlParams.put("fa","10");
urlParams.put("ca","11");
urlParams.put("a","12");
System.out.println("getSignStr = "+getSignStr(urlParams));
} catch (Exception e) {
e.printStackTrace();
}
}
public static String getSignStr(TreeMap<String, String> urlParams) {
String signStr = "";
for (String key : urlParams.keySet()) {
String value = urlParams.get(key);
if (value==null){
continue;
}
signStr += value;
}
return signStr;
}
private static String standardSHA1(String data, String key) {
byte[] byteHMAC = null;
try {
Mac mac = Mac.getInstance("HmacSHA1");
SecretKeySpec spec = new SecretKeySpec(key.getBytes(), "HmacSHA1");
mac.init(spec);
byteHMAC = mac.doFinal(data.getBytes());
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException ignore) {
}
System.out.println("byteHMAC = "+byteHMAC);
System.out.println("byte2hex ="+ byte2hex(byteHMAC));
return byte2hex(byteHMAC);
}
public static String byte2hex(byte[] b)
{
StringBuilder hs = new StringBuilder();
String stmp;
for (int n = 0; b!=null && n < b.length; n++) {
stmp = Integer.toHexString(b[n] & 0XFF);
if (stmp.length() == 1)
hs.append('0');
hs.append(stmp);
}
return hs.toString().toLowerCase();
}
}