...
В статье описана методика генерации хеша пароля пароля в формате файла /etc/shadow. Формат Формат генерируемого хеша (в качестве разделителей полей используется символ "$" ("доллар"):
Блок кода |
---|
$<код_алгоритма_хеширования>$<модификатор_входа>$<хеш_пароля> |
Где:
...
- код_алгоритма_хеширования — в данном примере используется gost12512hash;
- модификатор_входа — последовательность символов, добавляемая к хешируемым данным (паролю) для предотвращения декодирования методом перебора, далее "соль". Далее в примерах используется соль saltsaltsaltsalt;
- хеш_пароля — собственно хеш пароля, полученный после добавления соли.
Разделителем служит символ "$" (доллар). Например:
Блок кода |
---|
$gost12512hash$saltsaltsaltsalt$Y.AHSfY6w10hNisNhRQkl3YuAexXkTWxDAI2sipxMVG.wVHgZ5czD2wX2zMpptQEu2Wpfuo7DiAKDxDWe/IjS0 |
Для генерации хеша используется функция gost12_512_crypt() входящая в состав пакета libgost. Пакет libgost устанавливается в Astra Linux по умолчанию. Далее предполагается, что при установке пакета библиотека libgost.so размещена в файле /lib/libgost.so.2.0.2 (актуально для Astra Linux x.7, 1.6.12, 2.12.46). Проверить, где находится библиотека в используемом обновлении можно командой:
...
Для сборки программы требуется установить компилятор gcc (пакет gcc). Для установки пакета gcc в ALSE x.7 требуется подключить базовый репозиторий, в более ранних обновлениях Astra Linux Special Edition требуется подключить диск репозиторий диска со средствами разработки, в Astra Linux Common Edition пакет может быть установлен . Команда для установки:
Command |
---|
sudo apt install gcc |
...
Для генерации хеша пароля по алгоритму ГОСТ-2012-512 с помощью функции gost12_512_crypt() в Python установка дополнительных пакето12345678в пакетов не требуется.
Пример программы
...