Пользовательский пароль обычно хранится в хешированном виде
userPassword: {hasAlgorithm}Hashed value
Пример:
userPassword: {SSHA}DkMTwBl+a/3DQTxCYEApdUtNXGgdUac3
Атрибут userPassword
может иметь более одного значения, и каждое значение может быть сохранено в другой форме. Во время аутентификации slapd будет перебирать значения до тех пор, пока не найдет тот, который соответствует предложенному паролю, или пока у него не закончатся значения для проверки. Схема хранения сохраняется в виде префикса на значение
Вы можете иметь:
CRYPT
Эта схема использует хеш-функцию операционной системы crypt (3). Обычно он создает традиционный 13-символьный хэш Unix, но в системах с glibc2 он также может генерировать более безопасный 34-байтовый хэш MD5
.
MD5
Эта схема просто берет MD5-хэш пароля и сохраняет его в закодированной форме base64
SMD5
Это улучшает базовую схему MD5, добавляя соль (случайные данные, которые означают, что существует много возможных представлений данного незашифрованного пароля). Например, оба эти значения представляют один и тот же пароль
SSHA
Это соленая версия схемы SHA. Считается, что это наиболее безопасная схема хранения паролей, поддерживаемая slapd
Заключение
В большинстве случаев вам не нужно восстанавливать пароль, вам просто нужно вычислить хеш из пароля, указанного пользователем в форме входа в систему, и сравнить его с паролем userPassword
.