签名
签名规则:
1:签名中出现&,为连接符,非运算符,签名规则:body体中signature不参与签名,但header中的timestamp参与body签名
2:其余以参数名的字典升序排序(ascii码升序),且值不为空,并拼接"key=value"格式,多参数之间以&链接,得到A 值为空,不参与签名 只有数字类型以及字符串类型,参与签名
3:timestamp=时间戳,得到B,然后B&A得到C
4:将C使用MD5加密并全部字母变为大写,得到最终值D,即为signature值
5:body中需要增加signature,然后对body中数据,转为json后,进行encode转码,得到E
6:用公司公钥将E进行加密,得到F,其请求key值为data F长度以100长度分割,进行分段加密,加密后的值,需以用","进行拼接 7:最终请求参数结构如下:
签名示例:
1:a=1&b=2&c=3×tamp=11111131331,即为A
2:timestamp=11111131331,即为B
3: A&B 即 timestamp=11111131331&a=1&b=2&c=3×tamp=11111131331 为最终C取值
4:将C进行MD5加密并全部字母变为大写,得到最终签名密钥
5:对所有body参数,转为json后,encode转码,得到E
6:RSA加密 用公司公钥将E加密,得到F 若E长度>100,则RSA(E[0-100])=E1,RSA[E[剩余长度]]=E2,最终F=E1,E2
增加签名后的内容:
参数加密后的内容:
JAVA DEMO
Last updated