Symfony: ircmaxwell / password-compat — $ encoder-> encodePassword возвращает false

У меня есть сервер с версией PHP менее 5.5, и я пытаюсь запрограммировать аутентификацию пользователя с помощью bcrypt в Symfony. Поэтому я установил ircmaxwell / password-compat, но по какой-то причине кодировщик всегда возвращает false. Что я делаю, это:

    $factory = $this->get('security.encoder_factory');
$encoder =  $factory->getEncoder($user);
$encoded = $encoder->encodePassword('test', $user->getSalt());
die($encoded);

$ кодированный всегда пуст. Я проверил, пароль.php в ircmaxwell вызывается, и он возвращает false в этой строке:

    if (!is_string($ret) || PasswordCompat\binary\_strlen($ret) != $resultLength) {
return false;
}

потому что длина строки 13, а resultLength 60. Я мало знаю о bcrypt и других вещах, поэтому просто не понимаю, почему это происходит. Кто-нибудь может дать мне подсказку, почему это не работает?

Заранее спасибо.

0

Решение

Оказывается, я не видел очевидного. Библиотека паролей-паролей четко заявляет в соответствии с требованиями, что она требует php> = 5.3.7.
Что ж, получается, что моя версия php 5.3.3., Поэтому неудивительно, что она не работает.
Поскольку обновление сервера не вариант, я оставлю bcrypt и воспользуюсь чем-то другим.

0

Другие решения

Других решений пока нет …