8

次の関数を使用してIVを作成しようとしています。

mcrypt_create_iv(32, MCRYPT_DEV_RANDOM)

これにより、スクリプトは60秒を超えてタイムアウトします。(多分もっと?)しかし、私が使用するURANDOMと、それはほぼ瞬時に正常に動作します。私が読んだものから、それはで約4秒かかるはずMCRYPT_DEV_RANDOMですが、それは間違いなく時間がかかりすぎています。エラーログには何もありません。

私はそれをubuntu12.04サーバーにapache2とphp5でインストールしています。

CentOSサーバーでまったく同じコードを問題なく実行しました。

4

2 に答える 2

16

RANDOMとUnblocking-RANDOM(URANDOM)はどちらもランダムなデータを提供しますが、RANDOMは使いすぎによって「エントロピーウェル」が乾くとブロックし、補充されたときに再起動しますが、URANDOMは提供しません。

Pro:URANDOMはブロックしません。短所:URANDOMは、エントロピーなしで残された場合、それほどランダムではないデータを提供します。

暗号の目的では、あなたが本当にパラノイアでない限り、URANDOMで十分だと思います。

このUbuntuページを参照してください:http: //manpages.ubuntu.com/manpages/jaunty/man4/random.4.html

私は(間違って)RANDOMソースはユーザーが制御できると思っていましたが、そうではないようです。どうやら、そのコンピューターでは何も起こっていないので、カーネルエントロピージェネレーターは何も粉砕するものを見つけません。

プラス面として、URANDOMジェネレーターは非常に優れていると言われており、実質的にすべてに推奨されます。

(私は、少なくともPHPの再コンパイルが必要になるため、あなたにとってはうまくいかない私の以前の提案をいくつか編集しています)。

于 2012-06-23T23:35:55.220 に答える
1

実際、/ dev/randomと/dev/ urandomはどちらも、同じランダム性とセキュリティを提供します。/ dev / randomブロックの神話と、それを使用する理由については長い話があります。「ランダム/ランダムの神話」を探​​してください

于 2015-05-18T22:26:01.177 に答える