Как я могу использовать /dev/(u)random
в Ubuntu или любых * nix системах?
Я попробовал это, но там написано, что разрешение отклонено
Примечание: я тоже пробовал как root.
/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random
Как я могу использовать /dev/(u)random
в Ubuntu или любых * nix системах?
Я попробовал это, но там написано, что разрешение отклонено
Примечание: я тоже пробовал как root.
/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random
Ответы:
Это устройство, похожее на файл, так что вы можете делать такие вещи, как cat it или копировать с него. Например:
dd if=/dev/urandom of=~/urandom_test count=4 bs=1024
Создает файл, содержащий 4 КБ случайных байтов.
cat /dev/urandom > ~/urandom_test2
Будет продолжать записывать случайные байты в этот файл, пока вы не нажмете Ctrl-C. Не делайте этого на низкоэффективной системе ...
head -30 /dev/urandom > ~/urandom_test3
Напишем 30 строк случайных байтов
bytes terminated by a \n
. Что твое? head -30 /dev/urandom
даст вам 30 строк случайных байтов. Длина этих строк, безусловно, будет случайной. Попробуйте запустить wc -l
выходной файл, если вы не уверены.
/dev/urandom
ограничивается до 32 Мбайт за read()
и dd
не будет пытаться прочитать еще раз /dev/urandom
доходности тех 32 MiB, так что вы должны позвонить dd
с iflag=fullblock
. Смотрите, дд создает 32 МБ случайного файла вместо 1 ГБ
Если вам нужно определенное количество случайных байтов, прочитайте это количество байтов из /dev/urandom
.
Это «специальный файл», который сделан как файл для чтения случайных чисел.
Использование cat
для чтения /dev/urandom
является плохой идеей, потому что он будет пытаться читать /dev/urandom
до конца - но это не конец.
Вы можете использовать head
. Но будьте внимательны при чтении по байтам, а не по строкам - потому что строки будут случайно разделены случайными байтами новой строки.
Итак, чтобы прочитать 30 случайных байтов в файл random.bytes
, используйте:
head -c 30 /dev/urandom > random.bytes
Вы можете читать с него как обычный пользователь.
Обычно вы хотите использовать /dev/urandom
, а не /dev/random
.
Проблема в том, что /dev/random
его трудно использовать правильным образом и легко использовать неправильно. Поначалу неправильное использование работает, но позже создает странные - даже случайные - проблемы с производительностью. Иногда.
Когда вы используете /dev/urandom
, он использует /dev/random
внутренне, заботясь о хитрых частях.
RANDOM
для создания случайных положительных целых чисел:echo $RANDOM
и программаshuf
для генерации случайных перестановок, например, воспроизведение в случайном порядке из списка воспроизведения.