(2011/07/29 23:55), Tanaka Akira wrote:
> 2011年7月29日20:04 とみたまさひろ <tommy / tmtm.org>:
> 
>> ダメでした…。次のスクリプトで同じ乱数が生成されました。
>>
>> % ruby -rsecurerandom -e 'OpenSSL::Random.random_bytes(16); 33000.times{pid=fork{p [$$,SecureRandom.hex(16)]}; Process.waitpid pid}'
>>
> 
> なるほど。securerandom.rb 以外で OpenSSL::Random.random_bytes が呼ばれると、
> securerandom.rb は fork したことに気がつけないのですね。
> 
>> SecureRandom.random_bytes がそのプロセスで最初に呼ばれた時には常に
>> OpenSSL::Random.seed を呼ぶようにしてみたらうまくいきました。先のメール
>> の ary.to_s も一緒に修正しています。
> 
> 入れておきます。

ふと思ったのですが、 openssl を使うときでも、/dev/urandom があるならば、
openssl の seed に /dev/urandom を一部使ってもいいんじゃないでしょうか。

-- 
NARUSE, Yui  <naruse / airemix.jp>