在电商公司经常会遇到对接第三方的任务,有时候会用到通过MD5计算签名的这一步,因此将我的代码分享出来,希望可以帮到有需要的人
/**
* 将map中的字符串拼接,且转为urlEnCode
*
* @param str
* @return String
*/
public static String splitStr(String str) {
String newStr = str.replace("=", "");
String substring = newStr.substring(1, newStr.length() - 1);
String[] split = substring.split(", ");
Arrays.sort(split);
String join = StringUtils.join(split);
return join;
}
* 将urlEnCode之后的字符串进行加密
*
* @param str urlEnCode之后的字符串也就是需要加密的字符串
* @param api_secret 秘钥
* @return String 加密后的结果
*/
public static String MD5(String sourceStr ,String api_secret) {
try {
String str = api_secret+ sourceStr + api_secret;
String result = "";
String cases = null;
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
result = buf.toString();
cases = result.toUpperCase();
return cases;
} catch (NoSuchAlgorithmException e) {
String err = "{ \"code\": -1,\"message\": \"" + e.getMessage() + "\"}";
return err;
}
}