我猜测对版上各位大牛来说很简单,可惜我是java小白。import的这些都是我自己加上去的,不知道对不对,源码只有类的定义
有没有兄弟帮忙,然后告诉具体每一步怎么操作?
站内联系 不胜感激!!
import com.alibaba.fastjson.JSON;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import com.alibaba.fastjson.JSONObject;
import java.util.ArrayList;
import java.util.Set;
import java.util.List;
import java.util.Collections;
import com.alibaba.fastjson.JSONException;
public class MD5Util {
private static final String APP_SECRET = "85848@qqq";
public static String createSign(Object obj) {
String jsonString = JSON.toJSONString(obj);
String json = sortAsciiJson(jsonString);
return Md5(json);
}
private static String Md5(String message) {
MessageDigest md5 = null;
try {
md5 = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
return null;
}
char[] charArray = message.toCharArray();
byte[] byteArray = new byte[charArray.length];
for (int i = 0; i < charArray.length; i++)
byteArray[i] = (byte) charArray[i];
byte[] digest = md5.digest(byteArray);
StringBuilder sb = new StringBuilder();
for (byte by : digest) {
int var = by & 0xff;
if (var < 16)
sb.append("0");
sb.append(Integer.toHexString(var));
}
return sb.toString();
}
private static String sortAsciiJson(String json) {
String res = "";
try {
JSONObject jsonObject = JSONObject.parseObject(json);
jsonObject.put("appSecret", APP_SECRET);
Set<String> set = jsonObject.keySet();
List<String> nameList = new ArrayList<>(set);
Collections.sort(nameList);
StringBuilder sb = new StringBuilder();
sb.append("{");
for (int i = 0; i < nameList.size(); i++) {
String name = nameList.get(i);
String value = jsonObject.getString(name);
if (i != 0) sb.append(",");
if (value.startsWith("{") || value.startsWith("[")) {
sb.append(String.format("\"%s\":%s", name, value));
} else {
sb.append(String.format("\"%s\":\"%s\"", name, value));
}
}
sb.append("}");
res = sb.toString();
} catch (JSONException e) {
return "";
}
return res;
}
}
--
FROM 43.227.254.*