Как включить поддержку crypt_blowfish для теневых паролей и PHP на сервере Linux (Debian)?
Я имею в виду Bcrypt в стиле OpenBSD на основе Blowfish, известный в PHP как CRYPT_BLOWFISH.
Насколько я знаю, для него нет пакета Debian, какие еще параметры у меня есть, чтобы включить этот алгоритм хеширования для PHP?
Примечание:
PHP crypt () функция взаимодействует относительно напрямую с Склеп C-библиотеки (3) функция, предоставляемая базовой операционной системой.
Обновить
Именование пакетов не так ясно, как могло бы (должно) быть.
В Пакет 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('sting', '$2a$07$' . substr('saltsaltsalt', 0, CRYPT_SALT_LENGTH) )
Сначала вы должны проверить, если CRYPT_BLOWFISH == 1. И вам нужно будет использовать достаточно длинную соль, которая равна (или больше) 22 символа. Источник