2 itgangan ITgangan 于 2015.07.22 10:34 提问

微信开发中nonce参数有什么作用

请问在微信公众号开发中,验证数据时,nonce参数有什么作用,因为要验证数据的安全性,timestamp+token+signature感觉已经可以验证了。为什么要加入nonce,听说是为了防伪造,但有timestamp应该可以防伪造了吧?不很不理,希望有人能指点一下,谢谢。

5个回答

lzp_lrp
lzp_lrp   Ds   Rxr 2015.07.22 10:52

nonce是一个随机数

Token验证
http://www.weixingon.com/wechat/wechatappdev/2-1-2.php

caozhy
caozhy   Ds   Rxr 2015.07.22 13:21

新增随机数是为了加大伪造的难度,token、timestamp、nonce,三个数中,token只有自己知道而且是不变的,后面两个参数是变化的。随机数是不确定的,攻击中无法伪造。验证端只要按照约定的算法再运算一遍,就知道是不是微信服务器的请求了。

Sword52888
Sword52888   2015.08.11 00:15

timestamp,当前的时间戳,这个是可以获取的。必须再加个nonce随机字符串去与token排序再SHA1加密与signature比较判断是否来自微信服务器请求。

Sword52888
Sword52888   2015.08.11 00:14

timestamp,当前的时间戳,这个是可以获取的。必须再加个nonce随机字符串去与token排序再SHA1加密与signature比较判断是否来自微信服务器请求。

NorahLiu
NorahLiu   2017.06.12 18:23

设置timestamp和nonce都是为了防止Replay Attacks,如果只设定timestamp,则不能避免在允许的时间间隔内的重放攻击,所以设定随机数nonce,如果黑客窃取上次放的请求,在允许的时间间隔内再次发送该请求,由于nonce校验不通过,则可阻止该重放攻击。

Csdn user default icon
上传中...
上传图片
插入图片