Skip to content

Latest commit

 

History

History
52 lines (42 loc) · 3.7 KB

README.md

File metadata and controls

52 lines (42 loc) · 3.7 KB

Скрипт для помощи в генерации хешированного пароля

Зависимости

Скрипт на Python требует установленной версии Python > 3.

Скрипт на bash использует для генерации хешированного пароля openssl > 1.1, поэтому соответствующий пакет должен быть установлен и команда openssl должна быть доступна в PATH.

Общая информация

Shell версия считается устаревшей, т.к. корректно работает только на форках RHEL.

В Python версии:

  • Игнорируется переменная окружения SALT_LENGTH, т.к. в модуле crypt всегда используется максимальная длинна соли для выбранного типа шифрования.
  • DEBUG > 1 имеет такое же поведение, как и DEBUG = 1, это обусловлено тем, что нет смысла выводить скрипт на экран, для его отладки лучше использовать какой нибудь отладчик.
  • Выдается предупреждение, что модуль crypt устаревший, и будет удален. На текущий момент адекватная замена потребует установки модулей из PyPy и ищется вариант отказа от него без дополнительных танцев с бубном.

Настройки

Настройки производятся через установку переменных окружения перед запуском скрипта. Для установки доступны следующие переменные:

DEBUG - вывод отладочной информации, значение по умолчанию 0, может принимать значения 1 - вывод значений переменных, 2 - трассировка выполнения скрипта.

SALT_LENGTH - длинна соли, значение по умолчанию 16.

CIPHER - тип хеш функции, может принимать следующие значения 1 - MD5, 5 - SHA256, 6 - SHA512 (значение по умолчанию).

SALT - соль используемая для генерации хеша. Должна содержать так-же и код алгоритма. По умолчанию используется случайно сгенерированная соль.

Все значения по умолчанию используются как в CentOS при хешировании пароля и при обычной эксплуатации не требуют изменений.

Примеры запуска

Обычный запуск скрипта

[semets@pc-emets passwd-hash]$ ./passwd-hash.py 
Password: 
$6$hRGmGhbBXYu2H4ai$SeKOVSwvmJbWG2diymXsxOg6A9nNty82G/Je5m9rNzNrBJ5aeapfWkocbQLZ2AEnBpl80i7yIy/3Yi2RcZ.y21
[semets@pc-emets passwd-hash]$ 

Запуск с отладкой, уровень 1

[semets@pc-emets passwd-hash]$ export DEBUG=1; ./passwd-hash.py 
Salt lenght: 16
Chipher: -6
Random salt: 9k6FyocAgAY5Wg55
Password: 
$6$9k6FyocAgAY5Wg55$cdTJ9JE5NzwYQ83MJN/BypaupvHDl6.LJycXM4YGMb6mV6aTSAjuruJ/8ANiaSYdRWdpYnyvi8d2lwVpBuClc1
[semets@pc-emets passwd-hash]$

Генерация MD5 хеша

[semets@pc-emets passwd-hash]$ export CIPHER=1; ./passwd-hash.py 
Password: 
$1$K7g9yn3f$gdbDSeEukuHStvnfeCsrl/
[semets@pc-emets passwd-hash]$