大家可以将下面的几个方法放入java文件中,包的话直接默认原生工具包就可以了
public static String getMD5(byte[] content) {
try {
MessageDigest digest = MessageDigest.getInstance("MD5");
digest.update(content);
return getHashString(digest);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
private static String getHashString(MessageDigest digest) {
StringBuilder builder = new StringBuilder();
for (byte b : digest.digest()) {
builder.append(Integer.toHexString((b >> 4) & 0xf));
builder.append(Integer.toHexString(b & 0xf));
}
return builder.toString();
}
public static void main(String[] args) throws Exception {
Map map = new HashMap();
map.put("a","2");
map.put("b","4");
map.put("c","6");
String s = generateSign(map);
System.out.println(s);
}
private static String generateSign(Map params) throws Exception {
Set> entrys = params.entrySet();
List signs = new ArrayList();
for(Map.Entry entry:entrys){
signs.add(entry.getKey()+"="+(entry.getValue()==null?"":entry.getValue()));
}
Collections.sort(signs);
StringBuffer sb = new StringBuffer();
for(String sign:signs){
sb.append(sign);
sb.append("&");
}
sb.append("k=12345678901");
System.out.println("签名串加密前为:"+sb.toString());
String paramSign = getMD5(sb.toString().getBytes("UTF-8"));
System.out.println("签名串加密后为:"+paramSign);
return paramSign;
}