请求签名代码

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

ManSora:英国CN2 VPS,1核/1GB内存/10GB SSD/1TB流量/100Mbps/KVM,$18.2/月

mansora怎么样?mansora是一家国人商家,主要提供沪韩IEPL、沪日IEPL、深港IEPL等专线VPS。现在新推出了英国CN2 KVM VPS,线路为AS4809 AS9929,可解锁 Netflix,并有永久8折优惠。英国CN2 VPS,$18.2/月/1GB内存/10GB SSD空间/1TB流量/100Mbps端口/KVM,有需要的可以关注一下。点击进入:mansora官方网站地址m...

bluehost32元/月,2核2G/20GB空间,独立ip,新一代VPS美国云主机!

bluehost怎么样?bluehost推出新一代VPS美国云主机!前几天,BlueHost也推出了对应的周年庆活动,全场海外虚拟主机月付2.95美元起,年付送免费的域名和SSL证书,通过活动进入BlueHost中文官网,购买虚拟主机、云虚拟主机和独立服务器参与限时促销。今天,云服务器网(yuntue.com)小编给大家介绍的是新一代VPS美国云主机,美国SSD云主机,2核2G/20GB空间,独立...

BuyVM商家4个机房的官方测试IP地址和测速文件

BuyVM 商家算是有一些年头,从早年提供低价便宜VPS主机深受广大网友抢购且也遭到吐槽的是因为审核账户太过于严格。毕竟我们国内的个人注册账户喜欢账户资料乱写,毕竟我们看英文信息有些还是比较难以识别的,于是就注册信息的时候随便打一些字符,这些是不能通过的。前几天,我们可以看到BUYVM商家有新增加迈阿密机房,而且商家有提供大硬盘且不限制流量的VPS主机,深受有一些网友的喜欢。目前,BUYVM商家有...

签名代码为你推荐
在线代理QQ代理服务器怎么弄啊?地址是指IP,端口是什么?有必要该吗?还有用户,密码,都代表什么啊?新iphone也将禁售iPhone停用怎么解锁 三种处理方法详解中国企业信息网全国企业信息公示系统怎么查询企业信息ym.163.com网易163企业邮箱的foxmail怎样设置?360邮箱免费注册360账号-电子邮箱怎么填写?netshwinsockreset电脑开机老是出现wwbizsrv.exe 应用程序错误 怎么处理解析cuteftp文档下载怎样把手机里的文件直接下载或复制到U盘里传奇域名谁有霸气一点的传奇名字。给个什么是seoseo标题和seo关键词是什么意思
手机域名注册 东莞服务器租用 gitcafe 创宇云 一点优惠网 国内加速器 韩国网名大全 有奖调查 刀片服务器的优势 lol台服官网 天翼云盘 中国联通宽带测试 买空间网 卡巴斯基试用版下载 葫芦机 accountsuspended web服务器 赵蓉 装修瓦工招聘 ddos攻击器 更多