date +%s | sha256sum | base64 | head -c 32 ; echo
Этот метод использует встроенную возможность /dev/urandom и оставляет только те символы, которые обычно используются в паролях. Отображаются 32 символа.
< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;
Следующий метод использует функцию rand из openssl, котоырй может быть не установлен на вашей системе.
openssl rand -base64 32
Этот метод во многом схож с прошлым методом через urandom, но делает все наоборот:
tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1
Вот ещё один пример, который производит фильтрацию с помощью команды strings и отображает печатные символы из файла: в нашем случае это urandom:
strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d 'n'; echo
Вот ещё более простая версия метода через urandom:
< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c6
Этот метод использует очень полезную команду dd:
dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev
Если вы собираетесь использовать какую-нибудь команду все время, возможно, стоило бы поместить её в функцию. В данном случае, вы сможете использовать randpw все время, когда вы захотите сгенерировать новый пароль. Это нужно будет поместить в ваш файл ~/.bashrc:
randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;}
Вы можете использовать тот же синтаксис, чтобы использовать любой из примеров как функцию — просто замените команду внутри символов { }.
И, наконец, вот самый простой способ создания пароля из командной строки. Это простая контрольная сумма MD5 от текущей даты:
date | md5sum
Автор: AugustuS Karro
Дата публикации: 2014-10-15T05:15:00.000+08:00