https://gitee.com/xshuai/ai/tree/master/AIDemo/src/main/java/com/xs/tencent
SIGN签名生成算法-JAVA版本
/**
* SIGN签名生成算法-JAVA版本
* @param HashMap<String,String> params 请求参数集,所有参数必须已转换为字符串类型
* @return 签名
* @throws IOException
*/
public static String getSignature(HashMap<String,String> params) throws IOException {
// 先将参数以其参数名的字典序升序进行排序
Map<String, String> sortedParams = new TreeMap<>(params);
Set<Map.Entry<String, String>> entrys = sortedParams.entrySet();
// 遍历排序后的字典,将所有参数按"key=value"格式拼接在一起
StringBuilder baseString = new StringBuilder();
for (Map.Entry<String, String> param : entrys) {
//sign参数 和 空值参数 不加入算法
if(param.getValue()!=null && !"".equals(param.getKey().trim()) && !"sign".equals(param.getKey().trim()) && !"".equals(param.getValue().trim())) {
baseString.append(param.getKey().trim()).append("=").append(URLEncoder.encode(param.getValue().trim(),"UTF-8")).append("&");
}
}
System.err.println("未拼接APPKEY的参数:"+baseString.toString());
if(baseString.length() > 0 ) {
baseString.deleteCharAt(baseString.length()-1).append("&app_key="+TencentAPI.APP_KEY_AI);
}
System.err.println("拼接APPKEY后的参数:"+baseString.toString());
// 使用MD5对待签名串求签
try {
String sign = MD5.getMD5(baseString.toString());
return sign;
} catch (Exception ex) {
throw new IOException(ex);
}
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。