请求签名代码

签名代码  时间:2021-04-30  阅读:()

供应商业务系统对接测试指南对接环境简介供应链统一服务平台作为外部用户统一入口和外部数据集成中心,通过提供标准化的服务接口,为方便第三方更快速,更高效的集成到平台,现已搭建完成模拟测试环境,模拟环境信息如下:用户名密码要加密,调用要对请求体进行sign签名,相关介绍请仔细阅读此文件.
签名规则使用的是HmacSHA256加密.
下面流程图中描述有误请以HmacSHA256为准注:测试用户名密码及对接环境相关,以邮件回复的为准对接流程图Postman模拟请求测试请求流程示例:图中地址栏为示例地址,请求地址获取access_token时,请将地址替换为http://****/api/WZGYL/scp-supplier-erp/auth/get_access_token,在请求其他接口服务时,也请将地址替换为服务请求地址:http://****/api/WZGYL/scp-supplier-erp+服务相对地址,请参考文档开头服务地址示例上图中body中的账户密码并未加密,不能直接请求获取token,所以在获取access_token时请求体body中的账户密码请使用流程中经过加密的账户密码,然后用加密过后的账户密码去进行sign计算,并将sign放在请求头header中Token和请求参数签名设置:在请求其他接口服务时,也请将地址替换为服务请求地址:http://****/api/WZGYL/scp-supplier-erp+服务相对地址,请参考文档开头服务地址示例按照流程填写header内容请求参数签名代码示例s签名密钥:testKey签名流程:签名java代码示例publicclassTest{publicstaticvoidmain(String[]args)throwsIOException{Stringstr="{\n"+"\"username\":\"admin\",\n"+"\"password\":\"aaa\",\n"+"\"aa\":[1,2,5,6],\n"+"\"bb\":{\n"+"\"aa\":\"bb\",\n"+"\"aaa\":1\n"n"+"\"int\":1,\n"+"\"doube\":1.
2,\n"+"\"boolen\":true\n"清除换行符str=Pattern.
compile("[\t\r\n]").
matcher(str).
replaceAll("");//jaskson解析ObjectMapperOBJECT_MAPPER=newObjectMapper();//转成mapMapjsonNode=OBJECT_MAPPER.
readValue(str,Map.
class);//排序OBJECT_MAPPER.
configure(SerializationFeature.
ORDER_MAP_ENTRIES_BY_KEYS,true);//生成jsonStringstring=OBJECT_MAPPER.
writeValueAsString(jsonNode);//签名密钥StringsignKey="testKey";//HmacSHA265加密Stringencode=DigestUtil.
hmacDegist(DigestUtil.
HmacSHA256,signKey.
getBytes(),string).
toBase64();System.
out.
println(encode);}}关于自动排序,各大JSON框架都有实现,自行适配HmacSHA256加密示例:publicstaticStringhmacDegist(Stringalgorithm,byte[]key,Stringdata){try{//还原密钥,因为密钥是以byte形式为消息传递算法所拥有SecretKeysecretKey=newSecretKeySpec(key,algorithm);//实例化MacMacmac=Mac.
getInstance(secretKey.
getAlgorithm(),"BC");//初始化Macmac.
init(secretKey);//执行消息摘要处理byte[]result=mac.
doFinal(data.
getBytes(StandardCharsets.
UTF_8));//加密后的字符Stringstring=newString(java.
util.
Base64.
getEncoder().
encode(result),StandardCharsets.
UTF_8);returnstring;}catch(Exceptione){thrownewSecurityException(e);}}BouncycastleMaven坐标org.
bouncycastlebcprov-jdk15on1.
55RSA非对称加密代码示例公钥:MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVfisoOLrHQTZcAoQgKs36C0tOA4Kn6O6mYTxtBntO9dH/F+qYYXkNw8YJe2qDVIECeZSjgIZvsqItui9sJYNDAlIwW8QUguLjzrP/uJs9XjuniUvvDEEyTDBUOqUUr8164RUgGjt/7GhD5/EPnmir0hnji4bsP3bZX7QK6uOhUwIDAQABJava代码示例:publicstaticvoidmain(String[]args)throwsUnsupportedEncodingException,NoSuchAlgorithmException,InvalidKeySpecException,NoSuchPaddingException,InvalidKeyException,BadPaddingException,IllegalBlockSizeException{StringpublicKey="公钥";StringtestStr="待加密的字符";byte[]data=testStr.
getBytes(Charset.
forName("utf-8"));byte[]keyBytes=Base64Utils.
decode(publicKey);X509EncodedKeySpecx509KeySpec=newX509EncodedKeySpec(keyBytes);KeyFactorykeyFactory=KeyFactory.
getInstance("RSA");PublicKeykey=keyFactory.
generatePublic(x509KeySpec);Ciphercipher=Cipher.
getInstance("RSA/ECB/PKCS1Padding");cipher.
init(Cipher.
ENCRYPT_MODE,key);byte[]result=doFinal(cipher,data,128-11);//加密后的字符Stringstring=newString(java.
util.
Base64.
getEncoder().
encode(result),StandardCharsets.
UTF_8);System.
out.
println(string);}privatestaticbyte[]doFinal(Ciphercipher,byte[]data,intkey_len)throwsBadPaddingException,IllegalBlockSizeException{intinputLen=data.
length,offset=0;byte[]tmp;ByteArrayOutputStreamout=newByteArrayOutputStream(getTmpArrayLength(inputLen));while(inputLen>0){tmp=cipher.
doFinal(data,offset,Math.
min(key_len,inputLen));out.
write(tmp,0,tmp.
length);offset+=key_len;inputLen-=key_len;}returnout.
toByteArray();}privatestaticintgetTmpArrayLength(intL){intS=128;while(S签名代码参考文档中"请求参数签名代码示例"部分,获取到的sign需要放入到请求报文Header中.
、发出请求前,需要将请求报文body部分进行签名,签名代码参考文档中"请求参数签名代码示例"部分,获取到的sign需要放入到请求报文Header中;并且需要将开始获取到的acces_token需要放入请求报文Header中.

搬瓦工VPS:高端线路,助力企业运营,10Gbps美国 cn2 gia,1Gbps香港cn2 gia,10Gbps日本软银

搬瓦工vps(bandwagonhost)现在面向中国大陆有3条顶级线路:美国 cn2 gia,香港 cn2 gia,日本软银(softbank)。详细带宽是:美国cn2 gia、日本软银,都是2.5Gbps~10Gbps带宽,香港 cn2 gia为1Gbps带宽,搬瓦工是目前为止,全球所有提供这三种带宽的VPS(云服务器)商家里面带宽最大的,成本最高的,没有第二家了! 官方网站:https...

LightNode(7.71美元),免认证高质量香港CN2 GIA

LightNode是一家位于香港的VPS服务商.提供基于KVM虚拟化技术的VPS.在提供全球常见节点的同时,还具备东南亚地区、中国香港等边缘节点.满足开发者建站,游戏应用,外贸电商等应用场景的需求。新用户注册充值就送,最高可获得20美元的奖励金!成为LightNode的注册用户后,还可以获得属于自己的邀请链接。通过你的邀请链接带来的注册用户,你将直接获得该用户的消费的10%返佣,永久有效!平台目前...

提速啦(24元/月)河南BGP云服务器活动 买一年送一年4核 4G 5M

提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...

签名代码为你推荐
diskmediaphpweb破解怎样破解握手包http500http://bb500.com 这个电影网站安全不?为什么?有人能告诉我吗?不懂的人表乱说浪费你我的时间谢谢internetexplorer无法打开Internet Explorer 打不开了开心001开心001与开心网怎么不一样,哪个是真的?腾讯公司电话腾讯公司总部电话多少缤纷网五彩缤纷的黑是什么梗?瑞东集团请问富源集团到底是一个怎么样的集团?中国保健养猪网最具权威的养猪信息网站是哪个 啊工具条有什么工具条比较好
bash漏洞 国外空间服务商 抢票工具 512au 免费ftp站点 e蜗牛 免费mysql 国外免费全能空间 刀片服务器是什么 免费活动 广州服务器 服务器干什么用的 中国电信测速网 ftp免费空间 东莞服务器 linux使用教程 银盘服务是什么 双12 百度云加速 西安主机 更多