Я участвую в относительно зрелом проекте PHP с открытым исходным кодом. Недавно я обнаружил, что он хранит пароли в виде простых хеш-кодов MD5, что довольно утомительно для меня. Я подумал, что если я собирался это исправить, я мог бы также сделать все правильно (tm), поэтому я хотел бы использовать bcrypt.
Во-первых, то, что я нашел для других языков: bcrypt-ruby , похоже, использует либо оригинальный код C из OpenBSD, либо java-код jBCrypt . py-bcrypt - это тонкая оболочка вокруг кода BSD. BCrypt.net является прямым портом jBCrypt .
Теперь сам PHP поддерживает bcrypt (хотя и обманчиво называемый просто 'blowfish') в функции crypt . Однако версии до 5.3 требуют поддержки самой системы, обычно предоставляемой crypt_blowfish . phpass аналогичен и рекомендует установить PHP 5.3 или Suhosin .
Поскольку многие пользователи приложения используют стандартный виртуальный хостинг, я не хочу требовать какой-либо специальной настройки сервера.
sha1 ()
или md5 ()
для некоторого настраиваемого числа