Как включить поддержку crypt_blowfish для теневых паролей и PHP на сервере Linux (Debian)?
Я имею в виду bcrypt на основе Blowfish в стиле OpenBSD , известный в PHP как CRYPT_BLOWFISH.
Насколько я знаю, для него нет пакета Debian, какие еще есть варианты, чтобы включить этот алгоритм хеширования для PHP?
Примечание:
PHP- функция crypt () относительно напрямую взаимодействует с функцией crypt (3) библиотеки C, предоставляемой базовой операционной системой.
Обновление
имен пакетов не так ясно, как могло бы (должно быть).
Пакет PEAR Crypt_Blowfish является заменой расширения PHP MCrypt для быстрой двусторонней шифровки Blowfish.
Также пакет Debian BCrypt также является реализацией «нормального» двустороннего алгоритма blowfish.
Что мне нужно, так это реализация Bcrypt-hash для хеширования паролей.
Ответы:
Пакет, который вам нужно установить в Debian, это
libpam-unix2
.Затем вам придется отредактировать следующие файлы в разделе
/etc/pam.d/
и изменить всеpam_unix.so
использование наpam_unix2.so
:Наконец, отредактируйте
common-password
файл и замените параметр «md5» на «blowfish».Пароли, которые обновляются после внесения этих изменений, будут хешироваться с помощью blowfish. Существующие теневые пароли не изменяются. Источник
Чтобы использовать Blowfish в PHP, вы предоставляете соль для Blowfish
crypt()
. Как это:Сначала вы должны проверить, если CRYPT_BLOWFISH == 1. И вам нужно использовать достаточно длинную соль, которая равна (или больше) 22 символов. Источник
источник
passwd
что не запрашивает старый пароль при запуске от пользователя root. Важно: держите корневую сессию открытой, пока не будете уверены, что сможете снова войти в систему!