Zmiana hasła za pomocą CakePHP i blowfish

Próbuję skonfigurować formularz, aby umożliwić użytkownikowi zmianę hasła za pomocą CakePHP 2.3. Stosowanym algorytmem jest blowfish. Mam następujące trzy pola:

<?php echo $this->Form->input('old_password', array('type' => 'password', 'autocomplete' => 'off')); ?>
<?php echo $this->Form->input('new_password', array('type' => 'password', 'autocomplete' => 'off')); ?>
<?php echo $this->Form->input('new_password_confirm', array('type' => 'password', 'autocomplete' => 'off', 'label' => 'Confirm Password')); ?>

Oto kod, w którym próbuję sprawdzić, czy poprawnie wprowadzili swoje stare hasło:

$hash = Security::hash($this->request->data['User']['old_password'], 'blowfish');
$correct = $this->User->find('first', array(
    'conditions' => array(
        'User.id' => AuthComponent::user('id'),
        'User.password' => $hash
    ),
    'fields' => array('id')
));

Problem polega na tym, że mimo że wpisuję stare hasło poprawnie, Cake nigdy nie znajduje użytkownika, ponieważ wydaje się, że nie oblicza poprawnego skrótu. Za każdym razem, gdy przesyłam formularz z tym samym starym hasłem, Cake generuje inny skrót za każdym razem. Jest to prawdopodobnie spowodowane moim brakiem zrozumienia, jak działa algorytm blowfish / bcrypt, ale nie mogę tego zrozumieć.

Czego mi tu brakuje?

questionAnswers(2)

yourAnswerToTheQuestion