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
$RANDOM
kshとbashで利用可能ですが/bin/sh
。値は 0 から 32768 までの任意の数値なので、暗号化には適していません。
読み取りは、/dev/random
暗号化の使用に適したランダムバイトストリームを生成します。これはヌルバイトを含むことができる任意のバイトなので、シェル変数に保存することはできません。$n
ファイルにバイトを保存できます
</dev/random dd ibs=1 count=$n >rnd
od
8進または16進値を使用して、これらのバイトを印刷可能な表現に変換できます。出力が「奇妙」な場合は、別のod
オプションを選択する必要があります。
印刷可能な表現を取得する別のオプションは、uuencode
Generate Base64を呼び出すことです。
</dev/random dd ibs=1 count=$n | uuencode -m _ | sed -e '1d' -e '$d'