Harap perhatikan bahwa perintah ini hanya boleh digunakan, ketika Anda benar-benar membutuhkan data acak berkualitas tinggi, biasanya untuk membuat kata sandi yang baik. Kalau tidak, ada alternatif yang lebih ringan, misalnya 'variabel' lingkungan shell RANDOMuntuk membuat bilangan bulat positif acak:, echo $RANDOMdan program shufuntuk menghasilkan permutasi acak, misalnya bermain secara acak dari daftar putar.
sudodus
Jawaban:
54
Ini adalah file seperti perangkat, sehingga Anda dapat melakukan hal-hal seperti cat atau menyalinnya. Contohnya:
Catatan: Jangan lakukan cat / dev / urandom> ~ / urandom_test2 pada sistem berperforma rendah -> yang membekukan sistem
Caner Korkmaz
1
Ya .. itu sangat tergantung pada definisi Anda tentang sebuah garis. Definisi saya adalah bytes terminated by a \n. Apa milikmu? head -30 /dev/urandomakan memberi Anda 30 baris byte acak. Panjang garis-garis itu tentu saja akan acak. Coba jalankan wc -lpada file output Anda jika Anda tidak yakin.
aychedee
3
Perhatikan bahwa /dev/urandomdibatasi hingga 32 MiB per read()dan ddtidak akan mencoba lagi untuk membaca lebih dari sekali yang /dev/urandommenghasilkan 32 MiB, jadi Anda harus menelepon dddengan iflag=fullblock. Lihat dd menghasilkan file acak 32 MB bukannya 1 GB
Sergiy Kolodyazhnyy
14
Dapatkan byte acak
Jika Anda membutuhkan sejumlah byte acak, bacalah jumlah byte itu dari /dev/urandom.
Ini adalah "file khusus" yang dibuat seperti file untuk membaca angka acak.
Menggunakan catmembaca dari /dev/urandomadalah ide yang buruk, karena itu akan mencoba membaca /dev/urandomsampai akhir - tetapi itu tidak berakhir.
Anda bisa menggunakannya head. Tetapi berhati-hatilah untuk membaca dengan byte, bukan dengan baris - karena baris akan dipisahkan secara acak oleh byte baris baru acak.
Jadi, untuk membaca 30 byte acak ke dalam file random.bytes, gunakan:
head -c 30/dev/urandom > random.bytes
Anda dapat membacanya sebagai pengguna normal.
Biarkan sendiri / dev / acak
Biasanya, Anda ingin menggunakan /dev/urandom, bukan /dev/random.
Masalahnya adalah /dev/randomsulit digunakan dengan cara yang benar - dan mudah digunakan dengan cara yang salah. Mula-mula menggunakannya salah, tetapi menciptakan masalah kinerja yang aneh - bahkan acak nanti. Terkadang.
Ketika Anda menggunakan /dev/urandom, itu memanfaatkan /dev/randominternal, merawat bagian-bagian yang rumit.
RANDOM
untuk membuat bilangan bulat positif acak:,echo $RANDOM
dan programshuf
untuk menghasilkan permutasi acak, misalnya bermain secara acak dari daftar putar.Jawaban:
Ini adalah file seperti perangkat, sehingga Anda dapat melakukan hal-hal seperti cat atau menyalinnya. Contohnya:
Membuat file yang berisi 4K byte acak.
Akan terus menulis byte acak ke file itu hingga Anda menekan Ctrl-C. Jangan lakukan ini pada sistem berperforma rendah ...
Akan menulis 30 baris byte acak
sumber
bytes terminated by a \n
. Apa milikmu?head -30 /dev/urandom
akan memberi Anda 30 baris byte acak. Panjang garis-garis itu tentu saja akan acak. Coba jalankanwc -l
pada file output Anda jika Anda tidak yakin./dev/urandom
dibatasi hingga 32 MiB perread()
dandd
tidak akan mencoba lagi untuk membaca lebih dari sekali yang/dev/urandom
menghasilkan 32 MiB, jadi Anda harus menelepondd
denganiflag=fullblock
. Lihat dd menghasilkan file acak 32 MB bukannya 1 GBDapatkan byte acak
Jika Anda membutuhkan sejumlah byte acak, bacalah jumlah byte itu dari
/dev/urandom
.Ini adalah "file khusus" yang dibuat seperti file untuk membaca angka acak.
Menggunakan
cat
membaca dari/dev/urandom
adalah ide yang buruk, karena itu akan mencoba membaca/dev/urandom
sampai akhir - tetapi itu tidak berakhir.Anda bisa menggunakannya
head
. Tetapi berhati-hatilah untuk membaca dengan byte, bukan dengan baris - karena baris akan dipisahkan secara acak oleh byte baris baru acak.Jadi, untuk membaca 30 byte acak ke dalam file
random.bytes
, gunakan:Anda dapat membacanya sebagai pengguna normal.
Biarkan sendiri / dev / acak
Biasanya, Anda ingin menggunakan
/dev/urandom
, bukan/dev/random
.Masalahnya adalah
/dev/random
sulit digunakan dengan cara yang benar - dan mudah digunakan dengan cara yang salah. Mula-mula menggunakannya salah, tetapi menciptakan masalah kinerja yang aneh - bahkan acak nanti. Terkadang.Ketika Anda menggunakan
/dev/urandom
, itu memanfaatkan/dev/random
internal, merawat bagian-bagian yang rumit.sumber
Jika Anda hanya ingin membacanya dengan angka yang dikenali dapat Anda lakukan
sumber
Saya pribadi menggunakan ini untuk menghasilkan token:
sumber