Bcrypt->验证始终返回false

时间:2016-03-10 08:58:16

标签: php zend-framework bcrypt

我不知道为什么我的验证函数总是返回False。我没有忘记把这个“使用Zend \ Crypt \ Password \ Bcrypt;”

$form = new UtilisateurPasswordForm($idUtilisateur);
 $pass = new UtilisateurPassword();

if ($request->isPost()) {

     $form->setInputFilter($pass->getInputFilter());
     $form->setData($request->getPost());

     if ($form->isValid()) {
          $pass->exchangeArray($form->getData());

          $bcrypt      = new Bcrypt(['cost' => 14]);
          $mdp_old  = $bcrypt->create($pass->{'mdp_old'});

          $result = $this->getServiceLocator()
                  ->get('RestService')
                   ->call('inblue/utilisateur/' . $idUtilisateur);

          $mdp = $result->offsetGet('motDePasse');

          if($bcrypt->verify($mdp, $mdp_old)){
                var_dump('OH YEAH');
          }else{
                var_dump('ECHEC');
          }
     }
}

这是我使用bcrypt函数的Zend示例。在这种情况下我不认为zend是一个麻烦,我把一些var_dump看成变量,$ mdp_old也是一个哈希和$ mpd。 $ mdp来自WebService调用,我做对了。但是当我验证它们时,它返回false并且我确定我输入了正确的密码(我也是var_dump)。

谢谢!

编辑:我的不好,当使用验证时,我们只需要实现$ bcrypt然后只放入字符串 而不是这个$ bcrypt->验证($ mdp,$ mdp_old), 我应该使用$ bcrypt->验证($ pass-> {'mdp_old'},$ mdp) 它正在工作!!

0 个答案:

没有答案