接口签名:参数名按ASCII码从小到大排序+Key+MD5+转大写签名

简介: 接口签名:参数名按ASCII码从小到大排序+Key+MD5+转大写签名
/*** sign 签名 (参数名按ASCII码从小到大排序(字典序)+key+MD5+转大写签名)* key 由供应商提供* @return*/publicstaticStringgetSign(Mapmap, StringappSecret) throwsNoSuchAlgorithmException {
StringBuffersignOri=newStringBuffer();
// entrySet 所有参与传参的参数按照accsii排序(升序)Setset=map.entrySet();
Iteratorit=set .iterator();
while (it.hasNext()) {
Map.Entryentry= (Map.Entry) it.next();
Stringk= (String) entry.getKey();
Objectv=entry.getValue();
//空值不传递,不参与签名组串if (null!=v&&!"".equals(v)) {
signOri.append(k+"="+v+"&");
            }
        }
signOri=signOri.append("appSecret="+appSecret);
System.out.println(signOri);
//MD5加密,结果转换为大写字符Stringsign=encodeByMD5(signOri.toString()).toUpperCase();
returnsign;
    }
publicstaticStringencodeByMD5(Stringstr) throwsNoSuchAlgorithmException {
MessageDigestmd=MessageDigest.getInstance("MD5");
// 计算消息的摘要byte[] digest=md.digest(str.getBytes());
// 将摘要转换为十六进制字符串StringhexString=bytesToHex(digest);
returnhexString;
    }
publicstaticStringbytesToHex(byte[] bytes) {
StringBuilderhexString=newStringBuilder();
for (byteb : bytes) {
Stringhex=Integer.toHexString(0xff&b);
if (hex.length() ==1) {
hexString.append('0');
            }
hexString.append(hex);
        }
returnhexString.toString();
    }


目录
相关文章
|
Java Spring 容器
Spring的AOP失效场景详解
Spring的AOP失效场景详解
1712 0
|
4月前
|
存储 弹性计算 大数据
阿里云服务器38元、99元、199元特惠详细配置、适用场景及购买条件介绍
阿里云特惠云服务器全解析:入门款:轻量应用服务器(2核2G200M带宽+40G ESSD盘)38元/年,日均0.1元。进阶款:经济型e实例(2核2G3M带宽+40G ESSD Entry盘)99元/年,续费同价。性能款:通用算力型u1实例(2核4G5M带宽+80G ESSD Entry盘)199元/年,企业独享,续费同价。三款配置覆盖个人建站、中小企业应用及轻量级企业服务,通过大数据精选用户常用配置,实现价格与性能的精准匹配。本文将详细解析这些阿里云服务器的配置、价格、限购条件以及购买指南,帮助大家更好地了解和选择适合自己的云服务器。
|
应用服务中间件 网络安全 nginx
Nginx配置WebSocket 【支持wss与ws连接】
Nginx配置WebSocket 【支持wss与ws连接】
9864 1
|
数据安全/隐私保护
请求参数按照ASCII码从小到大排序后追加秘钥再进行加密得到签名值
请求参数按照ASCII码从小到大排序后追加秘钥再进行加密得到签名值
625 0
|
资源调度 jenkins 持续交付
jenkins 自动安装nodejs16.16.0版本报错处理
jenkins 自动安装nodejs16.16.0版本报错处理
1082 0
|
Java 数据库连接 mybatis
成功解决: Invalid bound statement (not found) 在已经使用mybatis的项目里引入mybatis-plus,结果不能共存的解决
这篇文章讨论了在已使用MyBatis的项目中引入MyBatis-Plus后出现的"Invalid bound statement (not found)"错误,并提供了解决方法,主要是通过修改yml配置文件来解决MyBatis和MyBatis-Plus共存时的冲突问题。
成功解决: Invalid bound statement (not found) 在已经使用mybatis的项目里引入mybatis-plus,结果不能共存的解决
|
前端开发 Java
成功解决:java.lang.String cannot be cast to java.lang.Integer
这篇文章记录了作者在使用Axios二次封装时遇到的一个Java类型转换问题,即前端传递的字符串参数不能直接转换为Integer类型,文章提供了正确的转换方法来解决这个问题。
成功解决:java.lang.String cannot be cast to java.lang.Integer
|
算法 Java API
在Spring Boot中实现接口签名验证通常涉及以下步骤
在Spring Boot中实现接口签名验证通常涉及以下步骤
1362 4

热门文章

最新文章