Я пытаюсь перейти на Blowfish для системы аутентификации. Потерпите меня, я не криптограф, и мое понимание Blowfish еще не совсем там.
Текущая настройка использует sha1 и соли. Соли генерируются для каждого пользователя и сохраняются в базе данных. Это сводится к следующему:
$salt = $this->getSalt($username); $hash = sha1($password . $salt); if ($hash == $hashInDB) { // user is authenticated, set session id etc ... }
Метод getSalt()
получает соль, сохраненную в базе данных для указанного пользователя.
Теперь, если я все правильно понимаю, с склепом я должен делать:
$salt = '$2a$07$' . $this->getSalt($username) . '$'; $hash = crypt($password, $salt); if ($hash == crypt($password, $saltInDB)) { // The user is authenticated, set session id etc.. }
Чтобы уточнить, для второго примера переменная $saltInDB
является значением, как “ $ 2a $ 07 $ arandomsaltcreatedatregistration $ '.