Генератор паролей на bash

Генератор паролей на bashВремя от времени приходится менять пароли. Все знают, что хороший пароль должен включать большие и малые латинские буквы, цифры и специальные символы. При этом они не должны быть слишком короткими. И каждый раз придумывать их все труднее и труднее, особенно если использовать разные пароли на разных сервисах. Можно для этого использовать, например, программу pwgen или генератор, встроенный в keepassx. А можно написать простой генератор паролей на bash.

Используемые символы

Будем использовать следующие символы: Большие и малые буквы латинского алфавита (A-Z и a-z), цифры (0-9) и символы «!@#$%^&*()?/\[]{}-+_=<>.,». Такое сочетание обеспечит максимальную надежность.

Длина пароля

Длина пароля будет 16 символов. Если вам нужен более короткий пароль, то вы можете указать меньшую длину в скрипте, либо добавить опцию командной строки.

Скрипт-генератор паролей на bash

Самое первое, что нам необходимо — это переменная, содержащая все символы, которые мы будем использовать. Также нужна будет переменная, содержащая длину пароля и переменная для хранения самого пароля.

SYMBOLS=""
for symbol in {A..Z} {a..z} {0..9}; do SYMBOLS=$SYMBOLS$symbol; done
SYMBOLS=$SYMBOLS'!@#$%&*()?/\[]{}-+_=<>.,'
# Строка со всеми символами создана.
# Теперь нам надо в цикле с количеством итераций равным длине пароля
# случайным образом взять один символ и добавить его в строку, содержащую пароль.
PWD_LENGTH=16  # длина пароля
PASSWORD=""    # переменная для хранения пароля
RANDOM=256     # инициализация генератора случайных чисел
for i in `seq 1 $PWD_LENGTH`
do
PASSWORD=$PASSWORD${SYMBOLS:$(expr $RANDOM % ${#SYMBOLS}):1}
done
echo $PASSWORD

Вот и всё. Это весь скрипт. И с его помощью мы можем получить пароль, который удовлетворяет всем распространенным требованиям безопасности. Осталась только одна проблема — запомнить его.
 

Генератор паролей на bash: 10 комментариев

  1. Alex

    Практический смысл в таком скрите весьма минимален. Это как в притче о чуваке, который всю жизнь учился ходить по воде, хотя можно просто использовать мост. Есть огромная куча сайтов для генерации паролей. А есть даже те, которые со своим API http://www.passwordrandom.com/Meter.aspx

    Хотя, с точки зрения тренировки и практики — свой велосипед в пароледеланьи — вполне неплохая метода к профессиональному росту :)

    1. mnorin Автор записи

      Этот скрипт тут как раз с точки зрения тренировки. А вот сайтам для генерации паролей я бы не доверял, пожалуй. :)

  2. г Чайковский, админ сайта

    Большое спасибо! Ваш скрипт пригодился. bash для автоматизации задач, одна из них — периодическая смена паролей.

  3. Ilya

    Максим привет! А как прикрутить к твоему генератору НЕ повторяющиеся Uppercase Letters и Lowercase Letters, а также пробелы в пароле?
    Зы: Навеяно мотивами — http://www.passwordmeter.com/
    К, примеру вот такой 26-ти значный пароль удоволетворяет требованиям сайта:
    k Eu&V+Gz) $PiC@LqF-w%tYa2

    1. Maxim Norin Автор записи

      Привет. Пробел просто добавить в список символов SYMBOLS, а на уникальность проверять можно, например, так:

      if [[ passw = *${symbol}* ]] ...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.