Menulis / dev / acak ke file?

10

Jika Anda menjalankan yang berikut, apa yang akan terjadi?

cat /dev/random > ~/randomFile # don't run

Apakah akan ditulis hingga drive kehabisan ruang, atau apakah sistem melihat masalah dengan ini dan menghentikannya (seperti dengan loop symlink tak terbatas)?

tkbx
sumber
4
Saya hanya ingin menambahkan bahwa menggabungkan secara acak ke dalam perangkat bernilai beberapa jam kesenangan di masa muda saya. Framebuffer dan kartu suara menghasilkan suara berisik dan disk drive mengharuskan saya untuk memformat ulang tingkat rendah ... saat-saat yang baik.
Bob Roberts
PL: 'executable / dev / dsp? kedengarannya menyenangkan '
sendmoreinfo
@ BobRoberts Saya memiliki petualangan yang sama, dengan hasil yang sama. Saya juga biasa ssh ke workstation linux rekan kerja dan cat nada DTMF ke speaker internal, kemudian memainkan nada sibuk, sehingga terdengar seperti PC mereka sedang mencoba untuk FAX sesuatu. Ah, masa-masa yang menyenangkan.
Tim Kennedy
@TimKennedy bagaimana Anda melakukannya? Apakah ada / dev / ice untuk jack audio 30mm?
tkbx
@tkbx yah, saya berkencan sendiri, tapi kembali pada hari Anda bisa cat file ke / dev / audio, dan jika itu file suara (.wav) itu akan dimainkan.
Tim Kennedy

Jawaban:

22

Itu menulis sampai disk penuh (biasanya masih ada ruang yang disediakan untuk pengguna root). Tetapi karena kumpulan data acak terbatas, ini bisa memakan waktu cukup lama.

Jika Anda membutuhkan sejumlah data acak, gunakan dd. Untuk 1MB:

dd if=/dev/random iflag=fullblock of=$HOME/randomFile bs=1M count=1

Kemungkinan lain disebutkan dalam jawaban untuk pertanyaan terkait .

Namun, dalam hampir semua kasus , lebih baik digunakan /dev/urandomsaja. Itu tidak memblokir jika kernel berpikir bahwa itu keluar dari entropi. Untuk pemahaman yang lebih baik, Anda juga dapat membaca mitos tentang / dev / urandom .

Instalasi mempercepat kecepatan /dev/randomdan juga memberikan lebih banyak entropi untuk /dev/urandom.

EDIT : ddmembutuhkan fullblockopsi sebagai / dev / random (berlawanan dari /dev/urandom) dapat mengembalikan blok tidak lengkap jika kumpulan entropi kosong.

Jika Anda ddtidak mendukung unit, tuliskan:

dd if=/dev/random iflag=fullblock of=$HOME/randomFile bs=1048576 count=1
Jofel
sumber
7
100 MiB data acak berkualitas tinggi sedikit banyak ... Anda harus mendapatkan beberapa byte untuk menaburkan beberapa generator nomor acak pseudo berkualitas tinggi, seperti twister Mersenne. Jika aplikasi tersebut sangat penting (dalam arti kriptografis), Anda harus membaca dan membaca masalah tersebut, dan mungkin menyewa seorang ahli.
vonbrand
4
@vonbrand Tidak, membaca 100MB dari /dev/urandombaik-baik saja, tidak ada alasan untuk tidak melakukannya. Dan jangan gunakan twister Mersenne untuk melakukan crypto. Dan jangan gunakan /dev/randomdi Linux .
Gilles 'SO- stop being evil'
3
@jofel: Tidak, output dari /dev/urandom yang baik untuk digunakan kriptografi. Jangan gunakan /dev/random.
Thomas Pornin
@ Gilles, mungkin saya kehilangan itu ... Saya setuju dengan semua yang Anda katakan, dan tidak bisa melihat di mana saya mengatakan sesuatu yang berbeda.
vonbrand
@Gilles & vonbrand: Terima kasih atas komentar Anda, saya meningkatkan jawaban saya (sekarang hanya 1MB dalam contoh, / dev / urandom direkomendasikan).
jofel