2 itgangan ITgangan 于 2015.07.22 10:34 提问

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

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

5个回答

caozhy
caozhy   Ds   Rxr 2015.07.22 13:21

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

lzp_lrp
lzp_lrp   Ds   Rxr 2015.07.22 10:52

nonce是一个随机数

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

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
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
微信开发第一步,配置基本配置
(一)需要原材料 1.云服务器一台(必须) 2.正式注册域名一个(非必须,可用ip来代替,但是最好要有) 3.微信公共平台可用的注册账号 (二)如何填写基本配置 (1)基本配置中的服务器配置必须启用 (2)四个必填选项 1.url     这个需要你填你在服务器上的脚本文件,文件配置后面会说         2.TOKEN 可以理解为口令,和支付宝一样,这样安全性会提高
基于 nonce 的用户身份验证协议
一:什么是nonce  维基百科:安全工程中,Nonce是一个在加密通信只能使用一次的数字。在认证协议中,它往往是一个随机或伪随机数,以避免重放攻击。 二:举例说明 一个典型的基于 nonce 的验证协议如下:         这里的 cnonce 为 client nonce(后面将讨论为什么需要 cnonce)。Client 并不直接发送密码(或
UsernameToken
使用用户名和密码来验证用户的身份是最普通也最常见的方法,虽然在安全性方面也比较弱,由于其运用的广泛性还是成为了WS-Security目前所 支持的Security Token之一。其原理非常简单,用户在发送请求的时候,在Soap head中加入自己的用户名以及密码,接受请求的Service通过之前与Client建立的共享密码来验证密码的合法性从而实现鉴别用户的功能。不过实际运用起来就不
sip 认证分析
SIP类似Http协议。其认证模式也一样。Http协议(RFC 2616 )规定可以采用Basic模式和摘要模式(Digest schema)。RFC 2617 专门对两种认证模式做了规定。RFC 1321 是MD5标准。Digest对现代密码破解来说并不强壮,但比基本模式还是好很多。   1、基本认证模式 客户向服务器发送请求,服务器返回401(未授权),要求认证。401消息的头里
setcookie参数详解
setcookie() 函数向客户端发送一个 HTTP cookie。  cookie 是由服务器发送到浏览器的变量。cookie 通常是服务器嵌入到用户计算机中的小文本文件。每当计算机通过浏览器请求一个页面,就会发送这个 cookie。  cookie 的名称指定为相同名称的变量。例如,如果被发送的 cookie 名为 "name",会自动创建名为 $user 的变量,包含 cookie 的值。
关于以太坊的nonce值
为了防止交易重播,ETH(ETC)节点要求每笔交易必须有一个nonce数值。每一个账户从同一个节点发起交易时,这个nonce值从0开始计数,发送一笔nonce对应加1。当前面的nonce处理完成之后才会处理后面的nonce。注意这里的前提条件是相同的地址在相同的节点发送交易。以下是nonce使用的几条规则:● 当nonce太小(小于之前已经有交易使用的nonce值),交易会被直接拒绝。● 当non...
微信公众平台开发学习--1
第一:验证服务器有效性。 微信需要验证服务器的有效性,通过以下方式。 注意:需要原样返回echostr参数内容,来告诉微信服务器,这个是有效的服务器 在开发者首次提交验证申请时,微信服务器将发送GET请求到填写的URL上,并且带上四个参数(signature、timestamp、nonce、echostr),开发者通过对签名(即signature)的效验,来判断此条消息的真实性。
nonce和timestamp在实际应用(新浪微博登录时传递加密信息)中的作用
这篇文章介绍了利用Nonce、Timestamp
微信jsapi开发教程之java获取微信timestamp,nonceStr,signature(第三课
根据微信的官方文档和案例代码,上述三个参数是必须的,而且上述三个参数都是动态获取的,那么接下来,我们根据微信官方文档,用java代码来实现获取timestamp,nonceStr,signature这三个参数,在这里呢只是一个main方法执行打印并输出,这节课不实现把这三个参数传递到网页中并成功调出微信jsapi,下一节课将着重讲解。 Sign代码:
以太坊实战-再谈nonce使用陷阱
在《以太坊实战之如何正确处理nonce》一文中我们介绍了nonce的基本概念和使用方法。也提到了它能够覆盖之前交易的特异功能。但是那只是nonce的冰山一角。今天再给大家分享在热点账户下nonce会出现的问题。 热点账户 所谓的热点账户就是频繁被使用的账户,在以太坊中比如交易所的统一出币账户,在短时间内频繁发起交易的账户,均可被称作热点账户。 replacement transact