Open2
Linux 乱数について
基本的に乱数を取得するには、以下の2通りがある。後者の手法はターゲットプラットフォームに依存するのでそのプラットフォームの個別対応になる。
- 疑似デバイスファイルを利用する
-
/dev/random
- 真乱数
- エントロピーが貯まるまでは結果を返さずにブロックする
-
/dev/urandom
- 疑似乱数
- urandom の u は
unblock
の頭文字。エントロピープールが枯渇しても処理がブロックされることなく乱数を生成し続けることが可能 - ただし、その反面枯渇すると乱数シードが再利用されるので精度的には
/dev/random
に劣る
- ハードウェア乱数発生器を利用する
参考文献
コマンドラインで乱数を取得
16ビットの値を取得する
$ echo $RANDOM
4629
8バイトを取得する
$ head -c 8 /dev/random
�1}O@�]