Уже есть несколько хороших ответов на то, как base64 кодирует случайные данные (т. е. cat /dev/urandom | base64
). Однако в теле вашего вопроса вы уточните:
... закодировать [urandom] в командной строке таким образом, чтобы весь его вывод был читаемым символом, например base64 или uuencode .
blockquote>Учитывая, что на самом деле вам не нужен синтаксический анализ base64 и просто хочу, чтобы он был доступен для чтения, я бы предложил
cat /dev/urandom | tr -dC '[:graph:]'
base64
выводить только буквенно-цифровые символов и двух символов (+ и / по умолчанию).[:graph:]
будет соответствовать любому печатаемому без пробелов ascii, включая много символов / знаков препинания, которых недостает base64. Поэтому, используяtr -dC '[:graph:]'
, вы получите более случайный вывод и получите лучшую эффективность ввода / вывода.Я часто использую
< /dev/random stdbuf -o0 tr -Cd '[:graph:]' | stdbuf -o0 head --bytes 32
для генерации надежных паролей.