У нас есть приложение PHP, которое хранит пароли только с помощью функции MD5 (без соли).
OpenSSH настроен на использование pam-mysql для аутентификации пользователей из одной и той же базы данных.
Мы хотели бы перейти на использование хешированных паролей, и мы рассматриваем либо: 1. сделать это самостоятельно (что-то вроде md5($salt."$".$password)
или hash("sha256", $salt."$".$password)
), либо 2. использовать функцию cryp в php (которая использует crypt в ОС ( 3) если имеется).
Проблема в том, что я не нашел, поддерживает ли pam-mysql crypt (3) или какой-либо заменяющий модуль pam.
crpyt(3)
использует предоставленный пользователем алгоритм и соль: crypt('password', '$5$saltstring$')
для sha256
, который возвращает $5$saltstring$OH4IDuTlsuTYPdED1gsuiRMyTAwNlRWyA6Xr3I4/dQ5
. Любой язык, который использует библиотеку crypt(3)
, увидит эту строку и будет знать, что нужно использовать sha256
с заданным хешем и ожидать данный результат.
Достаточно ли первого метода или есть какой-нибудь модуль PAM, который поддерживает MySQL и crypt (3)?