zoukankan      html  css  js  c++  java
  • 微信服务器认证为什么需要这么多参数

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6511991367751696900/

    在进行微信认证开发的时候,官网文档有这样一段话

    微信服务器认证为什么需要这么多参数?

    当时就想为什么这么多参数,都是什么意思?网上有现成的代码,抄下来就可以运行了

    微信服务器认证为什么需要这么多参数?

    可这个疑问一直在心里,百度查询了很多篇文章去解释我这个疑惑,现在就转换成个人的理解记录下来

    个人服务器对于访问它的人,不能确定是谁?可能是自己的用户也可能是不明身份的人,这种情况一般会使用账户来判断,如果账户密码没有问题,那么就是自己的用户不是不明身份的人了。

    微信服务器认证为什么需要这么多参数?

    本来是一个皆大欢喜的局面,但是账号密码开始的时候是明文,明文就是:账户是123: 密码是:456,在网络传输的时候,就是123、456的传输,但是中途可能被人解惑了,被别人知道了

    微信服务器认证为什么需要这么多参数?

    针对这种情况,就需要进行账户密码加密了,加密有很多种

    微信服务器认证为什么需要这么多参数?

    随机数+时间戳是非常常见的一种,它的原理是什么呢?

    随机数nonce是由服务器提供,在用户请求服务的时候,服务商提供给用户,用户用这个随机数+账户密码按照一定规则(MD5、SHA1)加密处理为一个新的字符

    712312389791(随机数)、123(账户)、456(密码)、MD5(规则)

    生成:(712312389791 + 123 + 456) + MD5 = 1238979asdqw123

    将生成的结果、用户名和随机数发送回服务商

    微信服务器认证为什么需要这么多参数?

    (1238979asdqw123 + 123 + 712312389791) -> 服务商

    注意此时是没有密码的,也就是说密码没有在中间传输,那么别人截取后也是看不懂1238979asdqw123这个是什么,但是服务器可以看懂,服务器如何看懂呢?

    服务器是有用户的密码的,也就是456,那么服务器拿到(1238979asdqw123 + 123 + 712312389791)加上密码就可以生成:(712312389791 + 123 + 456) + MD5 = 1238979asdqw123(服务器生成)

    此时服务器用1238979asdqw123(服务器生成)和用户发过来的1238979asdqw123对比,发现这就是我的用户就可以提供服务了,对应到微信服务器认证就是:

    微信服务器认证为什么需要这么多参数?

    那么另外两个参数呢?

    因为随机数是服务商发给用户的,当用户将随机数返回后

    微信服务器认证为什么需要这么多参数?

    服务器会验证随机数是否是我曾经发出的,那么就需要将随机数存在服务器端,试想一下,如果用户非常多,每次生成一个随机数,总有可能会生成一个相同的随机数,一个随机数就会对应两个用户,针对这个情况,就加一个时间戳,这个时间戳只和当前时间有关系。

    微信服务器认证为什么需要这么多参数?

    那么服务器第一次给用户的有随机数+时间戳

    微信服务器认证为什么需要这么多参数?

    那么最后一个参数就是返回给微信服务器,告诉它返回成功了,因为你如果随便返回一个内容,微信服务器不认识你,比如返回一个“你好”,所以微信服务器给你什么,你就返回什么,就可以了。

    微信服务器认证为什么需要这么多参数?

    这个不用怕被截取,因为目的是个人服务器是否认识微信服务器,而不是微信服务器认识个人服务器。

    就是让你信任微信服务器,不是让微信服务器信任你

  • 相关阅读:
    BNU 51002 BQG's Complexity Analysis
    BNU OJ 51003 BQG's Confusing Sequence
    BNU OJ 51000 BQG's Random String
    BNU OJ 50999 BQG's Approaching Deadline
    BNU OJ 50998 BQG's Messy Code
    BNU OJ 50997 BQG's Programming Contest
    CodeForces 609D Gadgets for dollars and pounds
    CodeForces 609C Load Balancing
    CodeForces 609B The Best Gift
    CodeForces 609A USB Flash Drives
  • 原文地址:https://www.cnblogs.com/bqwzy/p/8308751.html
Copyright © 2011-2022 走看看