В моем файле .bashrc я добавил строку psswd() { LC_ALL=C tr -dc 'a-zA-Z0-9-!"@/#$%^&*()_+~' < /dev/urandom | head -c "$1";echo ;}
, чтобы при вводе psswd n
в терминале возвращалась строка из n случайных символов. Я хотел бы добиться того же, но используя /dev/random вместо /dev/urandom. Однако, когда я заменяю /urandom на /random, вызов psswd ничего не делает (не может даже вывести ни одного случайного символа через 1 час), как будто он завис. Я не знаю, почему это так, и я знаю, что проблема не в недостатке энтропии. Причина в том, что команда od -An -N1 -i /dev/random
возвращает случайное число.
Обратите внимание, что эта последняя команда почти мгновенно возвращает случайное число, если я наберу ее, скажем, после новой перезагрузки. Но если я вызвал вызов psswd n с /random, то команда вернет случайное число примерно через 15 секунд. Таким образом, вызов /random, по-видимому, оказывает некоторое влияние на /dev/random, даже несмотря на то, что он не выводит никаких результатов, когда я вызываю функцию psswd.
В целом, я хотел бы знать, как создать функцию, которая использует /dev/random для генерации случайной строки из n символов.
/dev/random
? (См. также sockpuppet.org/blog/2014/02/ 25/безопасно-генерировать-случайные-числа) - person melpomene   schedule 01.08.2015/dev/random
стало так важно для решения исходной проблемы? Вы не указываете, какую проблему вы намеревались решить. - person Ryan Vincent   schedule 01.08.2015