程序员WEB前端程序开发@IT·互联网

BAT HTTP接口安全规范调查

2017-03-05  本文已影响0人  梦孤

今天在看书的时候,看到一句话觉得很有道理:“尽量通过读取协议头来获取有用的信息”,就萌生了一个想法,BAT公司提供的服务接口,有哪些信息是放到头部的?

百度

阿里

微信

总结

附录-签名规则(微信为例)

a.对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)后,使用 URL 键值对的
格式(即 key1=value1&key2=value2…)拼接成字符串 string1,注意:值为空的参数丌参不
签名;
b.在 string1 最后拼接上 key=Key(商户支付密钥)得到 stringSignTemp 字符串,幵对
stringSignTemp 进行 md5 运算,再将得到的字符串所有字符转换为大写,得到 sign 值
signValue。

假设以下为 package 传入参数:

appid=wxd930ea5d5a258f4f
auth_code=123456
body=test
device_info=123
mch_id=1900000109
nonce_str=960f228109051b9969f76c82bde183ac
out_trade_no=1400755861
spbill_create_ip=127.0.0.1
total_fee=1
key=8934e7d15453e97507ef794cf7b0519d

i:经过 a 过程 URL 键值对字典序排序后的字符串 string1 为:

appid=wxd930ea5d5a258f4f&auth_code=123456&body=test&device_info=123&mch_id=1900000109&nonce_str=960f228109051b9969f76c82bde183ac&out_trade_no=1400755861&spbill_create_ip=127.0.0.1&total_fee=1

ii:经过 b 过程后得到 sign 为:

sign
=md5(string1&key=8934e7d15453e97507ef794cf7b0519d).toUpperCase
=md5(appid=wxd930ea5d5a258f4f&auth_code=123456&body=test&device_info=123&mch_id=1900000109&nonce_str=960f228109051b9969f76c82bde183ac&out_trade_no=1400755861&spbill_create_ip=127.0.0.1&total_fee=1&key=8934e7d15453e97507ef794cf7b0519d).toUpperCase()
="c380bec2bfd727a4b6845133519f3ad6".toUpperCase()
="C380BEC2BFD727A4B6845133519F3AD6"
上一篇 下一篇

猜你喜欢

热点阅读