2011-06-20 7 views
3

PHPの "shm_get"関数は整数のセマフォーキーを必要とします。これは基本となるOSの制限であることがわかります。PHPの英数字(sha1)セマフォ?

"sha1"関数を使用してユーザー入力をハッシュし、ハッシュを使用して多数の結果ファイルとバックグラウンドプロセスを一意に識別しています。

shm_getに英数字キーを受け入れるか、sha1ハッシュを許容可能な整数に変換する方法はありますか?

答えて

2

あなたは、あなたのハッシュで多数を持っている場合しかし、これは整数を返しませんhexdec()

を使用して10進数に16進数を変換することができます。しかし、整数が必要です。だからあなたはそれを切り離し、ハッシュの一部だけを使いたいかもしれません。

$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); 
+0

最初にsubstrを整数に格納する方法はありません。 –

+0

ええ質問はすでに編集中です。変更されました;) – hakre

+1

hexdecは整数戻りを保証しません。これは問題になる可能性があるようです。 – Richard

関連する問題