关于PHPpython使用的CRC32函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于PHPpython使用的CRC32函数相关的知识,希望对你有一定的参考价值。

当web服务器和app服务器通信时,往往两端使用的是不同语言。例如这次我碰上的就是php和c。

php作为高级语言,各种方便的库函数一应俱全,在php的crc32函数调用过程中,只需要一个参数:被校验数据就行了。

但是在C语言中却不一样,crc32函数原型是  unsigned int crc32(unsigned int crc,unsigned char *buf,int size) 三个形参分别是生成多项式,被校验数据,被校验数据长度。返回值是crc校验码

那么问题来了,当web端使用php的crc32函数校验时,app服务器该使用什么参数来校验web传输的数据呢?

我找了很多资料,有说是crc32标准生成多项式0x4c11db7,有说是0xffffffff,尝试以后都不对。

最后看了一篇资料,说php在crc校验以后取反一次,用0xffffffff再试一次,OK,对了!

 

以上是关于关于PHPpython使用的CRC32函数的主要内容,如果未能解决你的问题,请参考以下文章

MySql crc32&&crc64函数提高字符串查询效率

关于CRC的应用和总结

可以使用 CRC32C 作为基础构造一个“好”的哈希函数吗?

php crc32 计算字符串的 32 位 CRC(循环冗余校验)

CRC32可以用作散列函数吗?

在 Intel CPU 上选择 32 位和 64 位固有 CRC