Проверьте расширение Mcrypt PHP.Это было вокруг в течение долгого времени и имеет несколько различных алгоритмов.bcrypt
кажется просто оболочкой Blowfish.Вы также можете легко использовать функцию PHP crypt () и передать соответствующую соль, чтобы заставить функцию использовать Blowfish:
// crypt($plaintext, $salt);
// How you define $salt determines the encryption algorithm used
$hash = crypt('PASSWORD', '$2a$12$Some22CharacterSaltXXO');
echo $hash;
// Output would be $2a$12$Some22CharacterSaltXXO6NC3ydPIrirIzk1NdnTz0L/aCaHnlBa
Страница руководства PHP (ссылка выше)объяснение того, почему соль пароля выглядит так, как в моем примере выше.$2a$
говорит PHP использовать Blowfish, 12$
- модификатор стоимости;число между 04 (да, это должно быть 2 цифры) и 31, которое (я считаю) влияет на число итераций, которые использует механизм хеширования.Как вы можете видеть, соль включена в вывод вызова crypt()
, поэтому, когда вам нужно что-то проверить по хешу, вам нужно сначала получить хеш (из файла или базы данных, где он хранится), чтобы извлечьсоль.