Cambio de contraseña con CakePHP y blowfish

Estoy intentando configurar un formulario para permitir que un usuario cambie su contraseña con CakePHP 2.3. El algoritmo utilizado es el pez globo. Tengo los siguientes tres campos:

<?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')); ?>

Aquí está el código donde intento verificar que ingresaron su contraseña antigua correctamente:

$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')
));

El problema es que aunque escribo la contraseña antigua correctamente, Cake nunca encuentra al usuario porque no parece estar calculando el hash correcto. Cada vez que envío el formulario con la misma contraseña anterior, Cake genera un hash diferente cada vez. Probablemente esto se deba a mi falta de comprensión de cómo funciona el algoritmo Blifffish / bcrypt, pero parece que no puedo resolverlo.

¿Que me estoy perdiendo aqui?

Respuestas a la pregunta(2)

Su respuesta a la pregunta