Привет, %username%! Довольно не редко приходится придумывать себе и/или кому-то пароль и далеко не всегда есть под рукой менеджер паролей с функцией генератора паролей. Рассмотрим несколько способов генерации паролей прямо в CLI - мне так очень удобно.

Для начала используем алгоритм SHA для хэширования даты, затем вычисляется base64, а затем берутся первые 32 символа.

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, с помощью которой выполняется обратная операция. Bash является очень мощным инструментом!

tr -cd '[:alnum:]' < /dev/urandom | fold -w32 | head -n1

Вот еще один пример, использующий фильтры в командной строке; в нем строки берутся из файла, который в данном случае создается с помощью функции 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 -c32; echo

В следующем примере применяется очень полезная команда dd. Только будь с ней осторожен!

dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev

Если хочется постоянно пользоваться одним из этих методов, то лучше всего оформить его в виде функции. В этом случае, как только вы один раз выполните следующую команду, вы сможете в любой момент с помощью команды getpwd создать случайный пароль. Вы, вероятно, захотите, записать эту команду в виде файла ~/.bashrc.

getpwd(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;}

На десерт самый простой способ сгенерировать пароль в командной строке, который работает в Linux, в Windows с Cygwin, и, вероятно, в Mac OS X. Я уверен, что некоторые скажут, что это не столь случайный пароль, как в других вариантах, но, честно говоря, подобной «случайности» вполне достаточно в случае, если вы собираетесь использовать пароль целиком.

date | md5sum

Да, эту команду даже достаточно легко запомнить, но еще лучше ее модифицировать самую малость:

date | md5sum | awk '{ print $1 }'

Есть множество других способов, с помощью которых вы можете в командной строке Linux создать пароль случайным образом, например, с помощью команды mkpasswd, с помощью которой можно, в действительности, назначать пароль учетной записи пользователя Linux.


Если у тебя есть вопросы, комментарии и/или замечания – заходи в чат, а так же подписывайся на канал.