我在PHP中有一个哈希函数,它是Java哈希函数的一个端口。在我的32位,功能匹配。但是,在64位操作系统上运行PHP代码时,结果会发生变化。架构独立算术运算
有无论如何我可以独立于架构执行算术运算,就好像它们总是在32位系统上执行一样?
这里是我的散列函数:
function numericHash($text, $lessThan = 50)
{
$hash = 0;
for ($i = 0; $i < strlen($text); $i++) {
$b = ord($text[ $i ]);
$hash += $b;
$hash = intval($hash);
$hash += ($hash << 10);
$hash = intval($hash);
$hash ^= ($hash >> 6);
$hash = intval($hash);
}
$hash += ($hash << 3);
$hash = intval($hash);
$hash ^= ($hash >> 11);
$hash = intval($hash);
$hash += intval($hash << 15);
$hash = intval($hash);
return bcmod((string) abs($hash), (string) $lessThan);
}
有没有你不能使用较为规范的哈希算法的好理由如SHA-256? – mwrichardson
不幸的是,这不是我的选择。 – Interfector