import java.util.Map;
import java.util.HashMap;
import java.util.stream.Collectors;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
public class Main{
public static void main(String[] args) {
String appSecret = "7e5b8261-b76b-4275-9939-38898139";
Map<String,Object> params = new HashMap<String,Object>();
params.put("method","TRANS_TIME_MANAGE");
params.put("appId", "2af7170f-9c46-4579-b8d8-e61d3d42");
params.put("timestamp", System.currentTimeMillis());
params.put("vehicle","陕 A0000");
System.out.println(sign(params, appSecret));
}
public static String sign(Map<String,Object> params, String appSecret){
if(params == null || appSecret == null || params.isEmpty()){
return null;
}
StringBuffer sb = new StringBuffer("");
sb.append(appSecret);
params.keySet().stream().sorted().forEach(k->{
if(params.get(k)!=null) {
sb.append(k);
sb.append(params.get(k));
}
});
sb.append(appSecret);
return md5(sb.toString());
}
public static String md5(String plainString) {
String cipherString = null;
try {
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
byte[] cipherBytes = messageDigest.digest(plainString.getBytes(StandardCharsets.UTF_8));
StringBuilder sb = new StringBuilder();
for (byte b : cipherBytes) {
sb.append(String.format("%02X", b));
}
cipherString = sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
return cipherString;
}
}