ソラリスで乱数を生成する?

ソラリスで乱数を生成する?

Solarisで乱数を生成する最良の方法は何ですか?

これに対する良い答えが見つからないようです。ほとんどの結果は私の環境では機能しません。 $RANDOMと同様に動作する変数またはコマンドRANDを持つことは論理的なようです。ほとんどの検索では見たことがありますが、常にゼロが生成されます。

このコマンドが見つかりました

od -X -A n /dev/random | head -2

これはランダムに見えますが、戻り型は(私にとって)奇妙です。

     140774 147722 131645 061031 125411 053337 011722 165106
     066120 073123 040613 143651 040740 056675 061051 015211

現在使用されているもの:

-bash-3.2$ uname -a
SunOS XXXXXXXXX 5.10 Generic_150400-29 sun4v sparc SUNW,SPARC-Enterprise-T5120

ベストアンサー1

$RANDOMkshとbashで利用可能ですが/bin/sh。値は 0 から 32768 までの任意の数値なので、暗号化には適していません。

読み取りは、/dev/random暗号化の使用に適したランダムバイトストリームを生成します。これはヌルバイトを含むことができる任意のバイトなので、シェル変数に保存することはできません。$nファイルにバイトを保存できます

</dev/random dd ibs=1 count=$n >rnd

od8進または16進値を使用して、これらのバイトを印刷可能な表現に変換できます。出力が「奇妙」な場合は、別のodオプションを選択する必要があります。

印刷可能な表現を取得する別のオプションは、uuencodeGenerate Base64を呼び出すことです。

</dev/random dd ibs=1 count=$n | uuencode -m _ | sed -e '1d' -e '$d'

おすすめ記事