我在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