做個筆記 前端數據加密方式很多 常見的已經很多了 md5 des等等
對於數據校驗也可以用crc32來進行
前端通過把重要的數據進行組合成字符串(排序組合或是字符串拼接都可以)
然後通過crc32生成一個16進制的hash(我們暫定爲hash)然後傳給服務器 服務器再將收到的數據進行拼接然後通過後端進行crc32生成hash和前端傳來的hash進行比對....雖然和md5一樣 但是crc32很短....有時候我都容易以爲是隨機字符串....
php端crc32生成很簡單 現成的
crc32("hello"); //int(907060870) 這個是直接生成10進制的crc32 前端大多都是轉16進制 所以轉下就對了
dechex($s); //string(8) "3610a686" 10進制轉16進制後的就和前端一樣了 至於前端的js代碼百度下一大堆
例子:
前端傳數據 :
_t = 456780123123 //一個時間戳
token = 'xxxxxxxxxx' //用戶token
param1=1 //重要參數1
param2='xxxx' //重要參數2
前端把這些全部按照固定的順序或是 sort排序拼接成字符串然後生成crc32 再把生成的一起帶給服務器 服務器就先驗證crc再進行驗證其他的
也可以在後一步上面驗證下時間 例如請求時間與現在的時間差距 畢竟每次觸發請求都可以生成新的時間戳 所以至少來說不管是延遲還是什麼請求帶過來的時間戳肯定與服務器接收的時間戳差距不大
總的來說這樣的方式對付下菜鳥還是行的