apg - генерирует несколько случайных паролей
apg [-a algorithm] [-M mode] [-E char_string] [-n num_of_pass] [-m min_pass_len] [-x max_pass_len] [-r dictfile] [-b filter_file] [-p min_substr_len] [-s] [-c cl_seed] [-d] [-y] [-l] [-t] [-q] [-h] [-v]
apg генерирует несколько случайных паролей. Он использует несколько алгоритмов генерации паролей (в настоящее время два) и встроенный генератор псевдослучайных чисел.
Алгоритм по умолчанию — это алгоритм генерации произносимых паролей, разработанный Морри Гассером и описанный в Генераторе случайных слов для произносимых паролей Национальная служба технической информации (NTIS) AD-A-017676. Исходный документ очень старый и никогда не публиковался в Интернете, поэтому мне пришлось использовать реализацию NIST, описанную в FIPS-181.
Другой алгоритм представляет собой простой алгоритм генерации случайных символов, но он использует четыре пользовательских набора символов для создания случайного пароля. Это означает, что пользователь может выбрать тип символов, которые должны появляться в пароле. Наборы символов: набор цифровых символов (0,...,9), набор символов заглавных букв (A,...,Z), набор символов строчных букв (a,...,z) и набор символов специальных символов ( #,@,!,...).
Встроенный генератор псевдослучайных чисел представляет собой реализацию алгоритма, описанного в Приложении C стандарта ANSI X9.17 или RFC 1750, за исключением того, что он использует CAST . или SHA-1 вместо Triple DES. Используется местное время с точностью до микросекунд (см. gettimeofday(2)) и /dev/random (если доступно), чтобы создать начальное случайное начальное число.
apg также может проверять качество сгенерированного пароля с помощью словаря. Вы можете использовать эту возможность, если укажете параметры командной строки -r dictfile или -b имя фильтра, где dictfile — имя файла словаря, а filtername — имя файла фильтра Блума. В этот словарь вы можете поместить слова (по одному в строке), которые не должны отображаться в качестве сгенерированных паролей. Например: имена пользователей, общеупотребительные слова и т. д. Вы даже можете использовать один из словарей, поставляемых с взломщиками паролей словаря. Файл фильтра Блума должен быть создан с помощью apgbfm(1 ) утилита, включенная в дистрибутив apg. В будущих выпусках я планирую реализовать некоторые другие методы проверки паролей (например, проверку по шаблону), просто чтобы упростить жизнь.
Используйте алгоритм для генерации пароля.
0 — генерация произносимого пароля (по умолчанию)
1 — генерация случайного символьного пароля
Сгенерируйте num_of_pass количество паролей. По умолчанию 6.
Создайте пароль минимальной длины min_pass_len. Если min_pass_len > max_pass_len, то max_pass_len=min_pass_len. Минимальная длина пароля по умолчанию — 8.
Создайте пароль максимальной длины max_pass_len. Если min_pass_len > max_pass_len, тогда max_pass_len=min_pass_len. Максимальная длина пароля по умолчанию — 10.
Используйте наборы символов, указанные с помощью mode, для генерации пароля. режим – это текстовая строка, состоящая из символов S, s, N, n. , C, c, L, l. Где:
Генератор должен использовать специальный набор символов для каждого сгенерированного пароля.
Генератор должен использовать специальный набор символов для генерации пароля.
Генератор должен использовать набор цифровых символов для каждого сгенерированного пароля.
Генератор должен использовать набор цифровых символов для генерации пароля.
Генератор должен использовать набор заглавных букв для каждого сгенерированного пароля.
Генератор должен использовать набор заглавных букв для генерации пароля.
Генератор должен использовать набор символов строчных букв для каждого сгенерированного пароля (всегда присутствует, если используется алгоритм генерации произносимого пароля).
Генератор должен использовать набор символов строчных букв для генерации пароля.
Больше не поддерживается. Вместо этого используйте параметр -E char_string.
mode не может быть длиннее 4 символов.
Примечание.
Использование L, M, S, C замедлит процесс генерации пароля.
Examples:
-M sncl -M SNCL -M Cn
Exclude characters in char_string from password generation process (in pronounceable password generation mode you can not exclude small letters). To include special symbols that can be recognized by shell (apostrophe, quotes, dollar sign, etc.) in char_string use the backslashed versions.
Примеры:
Команда apg -a 1 -M n -n 3 -m 8 -E 23456789 сгенерирует набор паролей, который будет выглядеть следующим образом:
10100110 01111000 11011101
Команда apg -a 1 -M nc -n 3 -m 26 -E GHIJKLMNOPQRSTUVWXYZ сгенерирует набор паролей, который будет выглядеть следующим образом:
16A1653CD4DE5E7BD9584A3476 C8F78E06944AFD57FB9CB882BC 8C8DF37CD792D36D056BBD5002
Проверяйте сгенерированные пароли на предмет их появления в dictfile.
Проверяйте сгенерированные пароли на предмет их появления в filter_file. filter_file должен быть создан с помощью утилиты apgbfm(1).
Эта опция указывает apg(1) проверять каждую подстроку сгенерированного пароля на наличие в filter_file. Если какая-либо из таких подстрок будет найдена в filter_file, то сгенерированный пароль будет отклонен, и apg(1) сгенерирует новый. min_substr_len указывает минимальную длину подстроки для проверки. Эта опция активна, только если определена опция -b.
Запросить у пользователя случайную последовательность для генерации пароля
Используйте cl_seed в качестве случайного начального числа для генерации пароля. Я использую его, когда мне нужно генерировать пароли в сценарии оболочки.
Примеры:
-c /dev/urandom -c /tmp/seed_file
НЕ используйте разделители между сгенерированными паролями. Я использую его, когда мне нужно генерировать пароли в сценарии оболочки.
Распечатать сгенерированные пароли и зашифрованные пароли (см. crypt(3))
Тихий режим (не выводить предупреждения)
Сгенерированные по буквам пароли. Полезно, когда вы хотите прочитать сгенерированный пароль по телефону.
ВНИМАНИЕ: дважды подумайте, прежде чем читать свой пароль по телефону.
Распечатайте произношение для сгенерированного произносимого пароля. Игнорируется, если установлено -a 1.
Распечатать справочную информацию и выйти
Распечатать информацию о версии и выйти
apg -a 0 -M sncl -n 6 -x 10 -m 8
Если вы хотите генерировать действительно безопасные пароли, используйте опцию -s. Чтобы упростить использование apg, вы можете написать небольшой сценарий оболочки. Например:
[begin]----> pwgen.sh #!/bin/sh /usr/local/bin/apg -m 8 -x 12 -s [ end ]----> pwgen.sh
При успешном завершении своей задачи apg завершится с кодом выхода 0. Код выхода -1 означает, что произошла ошибка. Текстовые ошибки записываются в стандартный поток ошибок.
Если /dev/random недоступен, apg отобразит сообщение об этом.
Нет.
Нет. Если вы нашли ошибку, отправьте описание ошибки автору.
apgbfm(1)
Адель Иванович Мирзажанов, a-del@iname.com
Домашняя страница проекта: http://www.adel.nursat.kz/apg/