请求签名代码

签名代码  时间: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中.

香港E3 16G 390元/ 香港E5*2 32G 600元/ 香港站群 4-8C 1200元/ 美国200G高防 900/ 日本100M 700元

3C云国内IDC/ISP资质齐全商家,与香港公司联合运营, 已超6年运营 。本次为大家带来的是双12特惠活动,香港美国日本韩国|高速精品|高防|站群|大带宽等产品齐全,欢迎咨询问价。3C云科技有限公司官方网站:http://www.3cccy.com/客服QQ:937695003网页客服:点击咨询客户QQ交流群:1042709810价目表总览升级内存 60元 8G内存升级硬盘 1T机械 90元 2...

RFCHOST - 洛杉矶CN2 GIA VPS季付23.9美元起 100Mbps带宽

RFCHOST,这个服务商我们可能有一些朋友知道的。不要看官网是英文就以为是老外服务商,实际上这个服务商公司在上海。我们实际上看到的很多商家,有的是繁体,有的是英文,实际上很多都是我们国人朋友做的,有的甚至还做好几个品牌域名,实际上都是一个公司。对于RFCHOST商家还是第一次分享他们家的信息,公司成立大约2015年左右。目前RFCHOST洛杉矶机房VPS正进行优惠促销,采用CN2优化线路,电信双...

Linode十八周年及未来展望

这两天Linode发布了十八周年的博文和邮件,回顾了过去取得的成绩和对未来的展望。作为一家运营18年的VPS主机商,Linode无疑是有一些可取之处的,商家提供基于KVM架构的VPS主机,支持随时删除(按小时计费),可选包括美国、英国、新加坡、日本、印度、加拿大、德国等全球十多个数据中心,所有机器提供高出入网带宽,最低仅$5/月($0.0075/小时)。This month marks Linod...

签名代码为你推荐
Servicemyphpcms模板phpcms v9 模板设置开启javascript开启 JavaScript,中国企业信息网全国企业信息公示系统怎么查询企业信息outlookexpress系统自带的outlook express有什么用?怎么用?支付宝账户是什么支付宝账户是什么?爱买网超艾比安高达厉害吗,今天在网上看到的万代的果断入手了,168贵吗,不知道这款高达厉不厉害电子商务世界世界前十大电子商务企业名字可信网站可信网站认证怎么做?贵不?价格大概是多少?discuz伪静态Discuz! X3.0 到底能不能伪静态?门户怎么伪静态?
长沙虚拟主机 猫咪永久域名收藏地址 广东vps 汉邦高科域名申请 ipage flashfxp怎么用 cve-2014-6271 免费主机 韩国加速器 服务器cpu性能排行 华为云主机 最好看的qq空间 java虚拟主机 北京双线 服务器是干什么的 香港新世界中心 双12 dnspod 摩尔庄园注册 免费网络空间 更多