- Сборка
- Установка
- Установка собранного пакета вручную
- Использование
- Указать явное использование языка
- Скорость
- Справка по командам make
- Локализация программы
- Добавить перевод
- Поддерживаемые ОС
$ git clone https://github.com/yarkovaleksei/passgen.git
$ cd passgen
$ ./configure
$ make
Если файла ./configure нет, попробуйте запустить autoreconf
$ autoreconf
$ ./configure
$ make
Самый простой вариант:
$ sudo make install
Но вот тут очень не советуют так делать, а советуют юзать checkinstall.
В общем-то пакет не имеет проблем при любом способе установки и удаления, но мы же привыкли верить Хабрасообществу?
Поэтому вот такая команда задействует checkinstall + соберет пакет в каталог build.
$ sudo make build install=yes
Если указать install=no
или просто опустить параметр install
, то пакет будет собран в каталог build, но установки не прозойдет.
$ sudo dpkg -i ./build/passgen*.deb
$ passgen -h
Консольный генератор паролей
Параметры по-умолчанию:
Длина пароля по-умолчанию: 25
Максимальная длина пароля: 4096
Максимальное количество паролей: 1000000
Максимальная длина шаблона: 200
Используемые ключи:
-h, --help Справочная информация
-v, --version Номер версии релиза
-l, --length=LENGTH Длина пароля. Если не указан, то
он будет установлен в значение по-умолчанию. Если указать 0,
то программа запросит ввод с клавиатуры.
-c, --count=COUNT Количество паролей за один вызов программы.
Полезно, когда надо сгенерировать
файл с уникальными строками.
-P, --pattern=PATTERN Строка, содержащая возможные
символы для генерации пароля.
Если ключ указан, то ключи
-u, -d, -n, -s будут проигнорированы.
-u, --letter-up Использовать английские буквы в верхнем регистре
-d, --letter-down Использовать английские буквы в нижнем регистре
-n, --number Использовать цифры
-s, --symbol Использовать символы и знаки препинания
-e, --enable-space Добавить пробел в шаблон пароля
Примеры использования:
passgen -l0 -u # Ввести длину пароля с клавиатуры и использовать только английские буквы в верхнем регистре
passgen -l25 -d # Использовать только английские буквы в нижнем регистре
passgen -l25 -s # Использовать только символы и знаки препинания
passgen -l25 -dn # Использовать только английские буквы в нижнем регистре и цифры
passgen -l25 -du # Использовать только английские буквы в нижнем и верхнем регистре
passgen -l25 -P123abc # Использовать только перечисленные символы: '123abc'
passgen -l25 -P123abc -e # Использовать только перечисленные символы: '123abc' и пробел
passgen -l25 -c5 # Список из 5 паролей, по одному в строке
Об ошибках сообщайте по адресу <[email protected]>
Больше информации на странице проекта:
https://github.com/yarkovaleksei/passgen
Поддерживается русская и английская локализация
$ LANG=ru_RU passgen -h
$ LANG=en_US passgen -h
Если нужная локализация не найдена, то будет использована английская.
man так же доступен на 2-х языках
$ man -L ru_RU passgen
$ man -L en_US passgen
Учитывая то, что программа написана на C, можно сказать, что работает очень быстро.
Для сравнения вот однострочная команда на Bash и вызов passgen с аналогичными параметрами:
$ time strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo
RHAoe9kbZDUDvSk2vgyiwLfFSjWS7S
real 0m0.062s
user 0m0.036s
sys 0m0.056s
$ time passgen -l30 -u -d -n
ht5Qga8GN25D3sjebAQN5MBbUSX2Ka
real 0m0.005s
user 0m0.000s
sys 0m0.004s
А теперь повторим опыт и вызовем команду 100 раз подряд:
$ time for i in {1..100};do strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n' > /dev/null; done
real 0m8.881s
user 0m1.716s
sys 0m13.604s
$ time passgen -l30 -u -d -n -c100 > /dev/null
real 0m0.059s
user 0m0.004s
sys 0m0.048s
И даже миллион строк против 100 passgen сгенерировал быстрее в ~5 раз ))) (Выполнения Bash команды я так и не дождался и убил процесс)
$ time passgen -l30 -u -d -n -c1000000 > /dev/null
real 0m1.769s
user 0m1.692s
sys 0m0.072s
Как мы видим, генерация строки длиной 30 символов, состоящей из букв и цифр, у passgen заняла в разы меньше времени.
$ sudo make uninstall
Если установили собранный deb пакет, то воспользуйтесь этой командой:
$ sudo dpkg -r passgen
$ make help
Usage make:
make help - view this help information
make - build binary from source
make debug - build binary from source with '-DDEBUG=1' option and not 'strip -s' run
make clean - clean project folder of *.o, ./bin, etc.
make distclean - clean project folder of ./configure created files (./*.tmp, ./*.log, etc.)
make check - run binary with test parameters
make doc - generate README.md and manpage files
sudo make build [install=<yes|no>] - build package. About 'install' options, see the README.md
sudo make install - install binary
sudo make uninstall - uninstall binary
ВНИМАНИЕ!!! Только для тех, кто понимает что делает!
В каталоге ./locale
лежат файлы локализации программы.
Если вы меняли что-то в исходниках программы, то чтобы обновить языковые файлы, надо выполнить команду:
$ ./translate.sh --extract
Далее следует отредактировать файлы, путь к которым появится на экране, и выполнить команду:
$ ./translate.sh --generate
Отлично! Теперь можно переустановить пакет с обновленными языковыми файлами.
Чтобы добавить перевод надо создать в каталоге ./locale
папку с именем в формате ll_CC и выполнить команду:
$ ./translate.sh --extract
Программа тестировалась на ОС:
- Ubuntu Desktop 14.04
Если найдутся добрые люди, которые протестируют на других ОС и отпишутся по указанному адресу, то я буду очень признателен.