Использование Blowfish для шифрования с PHP

Я работаю над регистрационной формой, где мне нужно зашифровать пароль, я слышал, что мне рекомендуется использовать шифрование Blowfish для паролей, как вы реализуете шифрование blowfish с помощью функции PHP crypt ()? кроме того, я планирую получить пароль для входа в систему.

2 ответов


короткий ответ-use crypt с солью, начинающейся с символов $2a$, состоящий из двух цифр стоимостью, $, и 22 цифры из алфавита ./ 0-9A-Za-z. Это работает только на системах, которые поддерживают алгоритм шифрования Blowfish. Однако PHP 5.3 реализует его изначально. См.руководство PHP-crypt для получения более подробной информации.

пример:

crypt('rasmuslerdorf', 'a$somesillystringforsalt')

строка соли вызывает соответствующий алгоритм. Две цифры стоимостью параметр является логарифмом базы-2 числа итераций для базового алгоритма хэширования на основе Blowfish и должен находиться в диапазоне [04 – 31]. В Примере 07 алгоритм говорит использовать 27 или 128 итераций. Чем выше это число, тем дольше оно будет выполняться, но в контексте хэширования паролей пользователей это хороший вещь.

этот ответ на аналогичный вопрос более подробно объясняет, что такое BCrypt, как он относится к Blowfish и почему вы должны его использовать. Есть много других связанные темы здесь на Stack Overflow.


phpass - отличная, простая в использовании структура хэширования паролей, которая работает во всех системах, используя Blowfish, если она поддерживается, и возвращается к другим алгоритмам, если это не так.


вам никогда не понадобится blowfish для шифрования такого пароля. Регистрационная форма должна быть через HTTPS, который будет обрабатывать защиту от злоумышленника на проводе. Пароль сам по себе должен быть хэширован ( никогда не шифруется). bcrypt-хорошая хэш-функция пароля, основанная на blowfish. Но есть много сообщений, связанных с безопасным хранением паролей на SO.