3

PHP 的“shm_get”函数需要一个整数信号量键,我意识到这是对底层操作系统的限制。

我正在使用“sha1”函数来散列一些用户输入,并使用散列来唯一标识一些结果文件和后台进程。

有没有办法说服 shm_get 接受字母数字键或将 sha1 哈希转换为可接受的整数?

4

1 回答 1

2

您可以使用以下方法将十六进制数转换为十进制数hexdec()

但是,如果您的哈希值很大,则不会返回整数。但是你需要一个整数。所以你可能想把它分开,只使用散列的一部分。

$hash = sha1('http://www.hashcat.net/');
$hash = substr($hash, 0, 15); // ok on 64bit systems
$number = (int) hexdec($hash); // cap to PHP_INT_MAX anyway
var_dump($hash, $number);
于 2011-06-20T23:12:59.727 回答