/ dev /(u)randomの使用方法


32

/dev/(u)randomUbuntuまたは任意の* nixシステムで使用するにはどうすればよいですか?

私はこれを試しましたが、許可が拒否されたと言います。
注:私はルートとしても試しました。

/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random

2
これらのコマンドは、通常、適切なパスワードを作成するために高品質のランダムデータが本当に必要な場合にのみ使用してください。それ以外の場合は、より軽量の代替手段があります。たとえば、RANDOMランダムな正の整数を作成するシェル環境「変数」echo $RANDOM、およびshufプレイリストからランダムな順序で再生するランダムな順列を生成するプログラムなどです。
sudodus

回答:


54

これはデバイスのようなファイルなので、cat itやコピーしたりできます。例えば:

dd if=/dev/urandom of=~/urandom_test count=4 bs=1024

4Kのランダムバイトを含むファイルを作成します。

cat /dev/urandom > ~/urandom_test2 

Ctrl-Cを押すまで、そのファイルにランダムバイトを書き込み続けます。低パフォーマンスのシステムではこれをしないでください...

head -30 /dev/urandom > ~/urandom_test3

30行のランダムバイトを書き込みます


1
自由に投票してください!
-aychedee

5
私の担当者が15を超える場合
23:19にKorkmaz Caner Korkmaz

1
注:DOは低性能のシステムでは猫は/ dev / urandomが>〜/ urandom_test2をしない- >システムフリーズ
Canerコルクマズ

1
まあ..それは本当にあなたのラインの定義に依存します。私の定義はbytes terminated by a \nです。君は?head -30 /dev/urandom30行のランダムバイトが得られます。これらの行の長さは確かにランダムです。wc -l納得できない場合は、出力ファイルで実行してみてください。
aychedee

3
/dev/urandomごとに32のMIBに限定されるread()dd続きを読むために再試行しませんが一度/dev/urandom利回りこれらの32のMIB、あなたが呼び出す必要がありますddiflag=fullblock。参照してください。ddは代わりに1ギガバイトの32メガバイトのランダムなファイル生成される
Sergiy Kolodyazhnyy

14

ランダムバイトを取得

特定の数のランダムバイトが必要な場合は、そのバイト数をから読み取ります/dev/urandom
これは、乱数を読み取るファイルのように作られた「特別なファイル」です。

最後まで読み込もうとするので、cat読むことを使用するの/dev/urandomは悪い考えです/dev/urandom-しかし、それは終わりません。

を使用できますhead。ただし、行はランダムな改行バイトでランダムに区切られるため、行ではなくバイトで読み取るように注意してください。

したがって、30バイトのランダムバイトをファイルに読み込むにはrandom.bytes、次を使用します。

head -c 30 /dev/urandom > random.bytes

通常のユーザーとしてそこから読み取ることができます。

/ dev / randomをそのままにする

通常、/dev/urandomではなくを使用します/dev/random

問題は/dev/random、正しい方法で使用するのが難しく、間違った方法で使いやすいことです。間違って使用すると最初は動作しますが、後でパフォーマンスの問題がランダムに発生します。時々。

を使用すると/dev/urandom/dev/random内部で利用され、トリッキーな部分を処理します。



0

私は個人的にこれをトークンの生成に使用しています:

dd if=/dev/urandom  count=1 bs=128 | sha512sum
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.