/ Dev / (u) random nasıl kullanılır


32

/dev/(u)randomUbuntu veya herhangi bir * nix sistemde nasıl kullanabilirim ?

Bunu denedim ama izin reddedildi yazıyor.
Not: Ayrıca root olarak denedim.

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

2
Lütfen bu komutların yalnızca, genellikle iyi şifreler oluşturmak için yüksek kalitede rastgele verilere ihtiyaç duyduğunuzda kullanılması gerektiğini unutmayın. Aksi takdirde, daha hafif alternatifler vardır; örneğin, RANDOMrasgele pozitif tamsayı sayıları oluşturmak için 'değişken' kabuk ortamı : echo $RANDOMve shuförneğin bir çalma listesinden rastgele sırayla çalma gibi rasgele permütasyonlar oluşturma programı .
sudodus

Yanıtlar:


54

Bir cihaz gibi bir dosyadır, böylece kedi gibi şeyler yapabilir veya ondan kopyalayabilirsiniz. Örneğin:

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

4K rastgele bayt içeren bir dosya oluşturur.

cat /dev/urandom > ~/urandom_test2 

Ctrl-C tuşlarına basana kadar bu dosyaya rasgele bayt yazmaya devam edecek. Bunu düşük performanslı bir sistemde yapmayın ...

head -30 /dev/urandom > ~/urandom_test3

30 satır rastgele bayt yazacak


1
O zaman yükseltmek için çekinmeyin!
aychedee

5
Temsilcim> 15
Caner Korkmaz

1
Not: Düşük performanslı sistemlerde cat / dev / urandom> ~ / urandom_test2 yapmayın -> sistemi donduran
Caner Korkmaz

1
Peki .. bu gerçekten bir çizgi tanımına bağlıdır. Benim tanımıdır bytes terminated by a \n. Seninki nedir? head -30 /dev/urandomSize 30 satır rastgele bayt vereceğim. Bu çizgilerin uzunluğu kesinlikle rasgele olacaktır. wc -lİkna olmadıysanız, çıktı dosyanızda çalışmayı deneyin .
aychedee

3
Not /dev/urandombaşına 32 MiB ile sınırlıdır read()ve ddfazla okumak için denenecek değildir kez /dev/urandomverim olanlar 32 MiB, böylece aramak zorunda ddolan iflag=fullblock. Bkz dd 1 GB yerine 32 MB rasgele bir dosya üretiyor
Sergiy Kolodyazhnyy

14

Rastgele bayt al

Belirli bir sayıda rasgele bayta ihtiyacınız varsa, o bayt sayısını o kaynaktan okuyun /dev/urandom.
Bu rastgele sayıları okumak için bir dosya gibi olmak için yapılan bir "özel dosya" dır.

catOkumayı kullanmak /dev/urandomkötü bir fikir çünkü /dev/urandomsonuna kadar okumaya çalışacak - ama bitmiyor.

Kullanabilirsiniz head. Ancak satırlara göre değil, baytla okumaya dikkat edin - çünkü satırlar rasgele yeni satır baytlarıyla ayrılır.

Bu nedenle, 30 rasgele baytı bir dosyaya okumak için şunu random.byteskullanın:

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

Ondan normal bir kullanıcı olarak okuyabilirsiniz.

Yalnız / dev / rastgele bırakın

Normalde, kullanmak istediğiniz /dev/urandomdeğil,/dev/random .

Problem şu /dev/random , doğru şekilde kullanmak zordur - ve yanlış şekilde kullanmak kolaydır. Yanlış kullanmak ilk başta çalışır, ancak daha sonra garip - hatta rasgele - performans sorunları yaratır. Ara sıra.

Kullandığınızda /dev/urandom, bu yararlanır /dev/randomzor parçaların bakımı, içten.


4

Sadece tanınan sayılarla okumak istiyorsanız,

od -d /dev/random

0

Kişisel olarak bunu jeton üretmek için kullanırım:

dd if=/dev/urandom  count=1 bs=128 | sha512sum
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.