php函数crc32存在的问题
中午突然获知AS客户端与服务端c协议通讯时,为了验证完整性和防外挂,服务端要求协议带上crc的验证信息,我做的php后台有Socket形式的GM命令也要求相同的协议。
但php和服务端计算出来的验证值是不同的,然后我试了下python写crc,python和服务端计算后的验证值是相同的。
经过一番搜索,通过文章1、文章2得知,在python2.x中 binascii.crc32(v) 求出了v的crc32值,是一个long型,经过 binascii.crc32(v) & 0xffffffff 计算后的验证值跟php一样的,可以说:
php的crc32 = python的 binascii.crc32(v) & 0xffffffff
此文验证结果没错,但原理性内容存在问题,待我学习crc算法,慎读。