暴雪战网安全令的原理
1、首先創建一個56位的byte數組,結構如下:
00 byte[1] 固定為1;
01 byte[37] 37位的隨機數據,只使用一次,用來解密服務器返回數據;
38 byte[2] 區域碼: US or EU;or CN
40 byte[16] 設備模型數據(手機型號,或者任意數據)
2、向服務器請求創建數據發送請求
獲取服務器返回數據,長度應該為45位,結構如下:
00 - 07 服務器時間(網絡字節序,計算本地時間與服務器時間的差值);
08 - 45 通過步驟1中37位隨機數據加密過的數據(包括序列號和私鑰)
3、將步驟2中08 - 45這37位數據進行解密
操作方法為與步驟1中的37位隨機數據按位進行 “與或”操作
解密后的37位數據結構如下:
00 - 19 私鑰(私鑰就是計算驗證碼所用的鑰匙)
20 - 37 序列號(格式為US-xxxx-xxxx-xxxx,就是在戰網上綁定到賬戶所需要的14位數字序號,輸入的時候,不需要中間的連字符)
這也就是為什么所有版本的手機驗證器(包括java,安卓等)第一次啟動需要聯網的原因,以后啟動則無需聯網,只需要通過私鑰將當前時間加密即可,除非本地時間更改,與服務器不同步
4、獲取驗證碼
將當前時間,通過時間差值計算出服務器時間
然后服務器時間除以30000(毫秒,即30秒,也就是每半分鐘更換一次驗證碼)
將該值通過步驟3中的私鑰,經過SHA1算法計算出結果(SHA1算法很常見,這里不贅述),這個結果就是驗證碼 .
總結
以上是生活随笔為你收集整理的暴雪战网安全令的原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 交互软件Axure—高保真原型
- 下一篇: 怎么创建具有真实纹理的CG场景岩石?