做个笔记 前端数据加密方式很多 常见的已经很多了 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再进行验证其他的
也可以在后一步上面验证下时间 例如请求时间与现在的时间差距 毕竟每次触发请求都可以生成新的时间戳 所以至少来说不管是延迟还是什么请求带过来的时间戳肯定与服务器接收的时间戳差距不大
总的来说这样的方式对付下菜鸟还是行的