Назад | Перейти на главную страницу

Включить поддержку хэша на основе blowfish для crypt

Как включить поддержку 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-auth
  • общий пароль
  • общая сессия

Наконец, отредактируйте common-password файл и замените параметр "md5" на "blowfish".

Пароли, которые обновляются после внесения этих изменений, будут хешированы с помощью blowfish. Существующие теневые пароли не изменяются. Источник

Чтобы использовать blowfish в PHP, вы предоставляете соль blowfish для crypt(). Как это:

crypt('sting', '$2a$07$' . substr('saltsaltsalt', 0, CRYPT_SALT_LENGTH) ) 

Сначала вы должны проверить, если CRYPT_BLOWFISH == 1. И вам нужно будет использовать достаточно длинную соль, которая равна (или больше) 22 символа. Источник