微信验证服务器是怎么回事,微信服务器认证为什么需要这么多参数?
在進行微信認證開發的時候,官網文檔有這樣一段話
當時就想為什么這么多參數,都是什么意思?網上有現成的代碼,抄下來就可以運行了
可這個疑問一直在心里,百度查詢了很多篇文章去解釋我這個疑惑,現在就轉換成個人的理解記錄下來
個人服務器對于訪問它的人,不能確定是誰?可能是自己的用戶也可能是不明身份的人,這種情況一般會使用賬戶來判斷,如果賬戶密碼沒有問題,那么就是自己的用戶不是不明身份的人了。
本來是一個皆大歡喜的局面,但是賬號密碼開始的時候是明文,明文就是:賬戶是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對比,發現這就是我的用戶就可以提供服務了,對應到微信服務器認證就是:
那么另外兩個參數呢?
因為隨機數是服務商發給用戶的,當用戶將隨機數返回后
服務器會驗證隨機數是否是我曾經發出的,那么就需要將隨機數存在服務器端,試想一下,如果用戶非常多,每次生成一個隨機數,總有可能會生成一個相同的隨機數,一個隨機數就會對應兩個用戶,針對這個情況,就加一個時間戳,這個時間戳只和當前時間有關系。
那么服務器第一次給用戶的有隨機數+時間戳
那么最后一個參數就是返回給微信服務器,告訴它返回成功了,因為你如果隨便返回一個內容,微信服務器不認識你,比如返回一個“你好”,所以微信服務器給你什么,你就返回什么,就可以了。
這個不用怕被截取,因為目的是個人服務器是否認識微信服務器,而不是微信服務器認識個人服務器。
就是讓你信任微信服務器,不是讓微信服務器信任你
舉報/反饋
總結
以上是生活随笔為你收集整理的微信验证服务器是怎么回事,微信服务器认证为什么需要这么多参数?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pico park无法连接至远程服务器,
- 下一篇: 2台服务器虚拟存储,虚拟存储的主要用途