签名算法过程
1、对除签名外的所有请求参数按key做ASCII升序排列,value无需编码。(假设当前时间的时间戳是12345678)
例如:有c=3,b=2,a=1 三个参,另加上时间戳后, 按key排序后为:a=1,b=2,c=3,_timestamp=12345678。
2、把参数名和参数值连接成字符串,得到拼装字符:a1b2c3_timestamp12345678
3、用约定的appkey拼装到字符串头部和尾部,然后进行32位MD5加密,最后将到得MD5加密摘要转化成大写。
示例:假设appkey=test,md5(testa1b2c3_timestamp12345678test),取得MD5摘要值 C5F3EB5D7DC2748AED89E90AF00081E6 。该值即为下述请求参数说明中的_sign。
package xxx;
import java.security.MessageDigest;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.Map;
import java.util.Set;
/**
* 接口签名校验工具类
* &