PHP的CRC32函数需要注意的问题(或坑)

PHP的CRC32函数需要注意的问题(或坑)
几天前,编写了一个子表程序。使用的哈希算法是CRC32的功能。子表如下:

复制代码代码如下所示:

功能_gethash($用户名)

{

$ hash = CRC32($用户名)% 512;

返回$哈希;

}

功能_gettable($用户名)

{

哈希=自我::_gethash美元(美元的用户名);

return'user_。$哈希;

}
首先,我们产生对当地32位窗口的良好数据并插入相应的表格,然后通过服务器程序和数据(64 Linux),并发现数据没有发现。经过调查,发现服务器上原有的CRC32的结果是不同的的地方。它是唯一已知的PHP手册,CRC32的接口是机器原本相关。

PHP手册的说明:

复制代码代码如下所示:

因为PHP的整数类型是签署了许多crc32校验结果,校验和,它也被称为对与错。
由于CRC32返回在32位机器会产生溢出,这样的结果可能是负面的。它不会泄漏的64位机,所以它总是积极的。

CRC算法是根据位的字长计算的。

CRC32函数计算php_int_size,php_int_max,按照PHP两常数

两个常数的定义:

的整数字长是平台相关的,虽然最大约为二十亿(32位有符号)。PHP不支持无符号整数,一个整数的长度可以由一个常数php_int_size表示,和最大值可以由一个恒定的php_int_max因为PHP 4.4.0和PHP 5.0.5代表。

php_int_size:4,php_int_max:2147483647在32位输出

php_int_size:8,php_int_max:922337203685477580在64位输出

tag:函数需要注意电脑软件php

相关内容