Десять способов генерации случайного пароля через командную строку

b_675_675_16777215_10_images_14_image257.png

Одно из преимуществ Linux — то, что вы можете сделать одну и ту же вещь сотнями различных способов, даже если это что-то очень простое, например, генерация случайного пароля — её можно провести множеством различных команд. Вот десять способов, как сделать это.
Мы протестировали все эти команды на компьютере с Linux, чтобы убедиться, что они работают. Вы можете использовать некоторые из них на Windows с установленным Cygwin, но мы не тестировали все из них — по крайней мере, точно работает последняя.

Генерируем случайный пароль

Все эти команды для получения специального пароля вы можете модифицировать для получения другой длины пароля, или вы можете использовать первые несколько (сколько вам нужно) символов сгенерированного пароля, если вам не нужен очень длинный пароль. Вам стоит использовать менеджер паролей, например, LastPass, чтобы не запоминать все эти пароли.
Первый метод использует 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, но делает все наоборот:

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;}

Вы можете использовать тот же синтаксис, чтобы использовать любой из примеров как функцию — просто замените команду внутри символов { }.
И, наконец, вот самый простой способ создания пароля из командной строки, который работает в Linux, Windows с Cygwin и, возможно, Mac OS X. Это простая контрольная сумма MD5 от текущей даты:

date | md5sum

Такую команду даже просто запомнить.