package com.cattong.commons.util;
import java.security.Key;
import java.util.Map;
import java.util.TreeMap;
import com.cattong.commons.Logger;
public class SignatureUtil {
public static String sign(Map<String, Object> paramMap, Key key) {
if (paramMap == null || paramMap.size() == 0 || key == null) {
return null;
}
return sign_(paramMap, key);
}
private static String sign_(Map<String, Object> paramMap, Key key) {
if (paramMap == null || paramMap.size() == 0 || key == null) {
return null;
}
String paramStr = getParamString(paramMap);
Logger.debug(paramStr);
String sign = EncryptUtil.getSHA(paramStr);
String cipherText = RsaUtil.encrypt(sign, key);
return cipherText;
}
public static String getParamString(Map<String, Object> paramMap) {
if (paramMap == null || paramMap.size() == 0) {
return null;
}
return getParamString_(paramMap);
}
private static String getParamString_(Map<String, Object> paramMap) {
if (paramMap == null || paramMap.size() == 0) {
return null;
}
TreeMap<String, Object> paramTreeMap = new TreeMap<String, Object>();
for (String keyStr : paramMap.keySet()) {
paramTreeMap.put(keyStr, paramMap.get(keyStr));
}
StringBuffer sb = new StringBuffer();
for (String keyStr : paramTreeMap.keySet()) {
if ("sign".equals(keyStr)) {
continue;
}
sb.append(paramTreeMap.get(keyStr) + "|");
}
String paramStr = sb.substring(0, sb.length() - 1);
Logger.debug(paramStr);
return paramStr;
}
}