Bonsoir,

Je cherche à créer un système d'inscription au site, seulement il semblerait que le password haché ne corresponde pas avec ce qui a été entré lors de l'enregistrement.

Je m'explique : lorsque j'ai crée le compte admin, je l'ai entré directement via le controller :

$data = array();
        $data'User']'username'] = 'admin';
        $data'User']'password'] = 'power';
        $data'User']'lvl'] = "0";
        $this->User->save($data);

Pour le joueur je suis passé par un formulaire dans la vue :

//model user.php
<?php
class User extends AppModel {
    var $name = 'User';

    function beforeSave() {
        $this->data"User"]"password"] = Security::hash($this->data"User"]"password"], null, true);
        return true;
    }
}
?>
//controller users_controller.php
function add_user() {
        if ($this->Session->read("Auth.User.lvl") >= 2)
        {
            if (!empty($this->data)) {
                if ($this->User->save($this->data)) {
                    $this->redirect("/");
                }
            }
        } else {
            $this->redirect("/");
        }
    }
//view add_user.ctp
<?php
echo $form->create('User', array('url' => array('action' => 'add_user')));
echo $form->input("username", array("label" => "", "value" => "Login"));
echo $form->input("password", array("label" => "", "value" => ""));
echo $form->end("Send");
?>

Comparaison des deux hachages pour un password identique ("power") :
Hachage admin : 612c189487998593aee716f92a0d7b1470157f62
Hachage player : 11d1d73b087c2e251269287bf3f4897113b1990a

Comment c'est possible? Avez-vous une idée?

Merci !

1 réponse


Zouox
Auteur
Réponse acceptée

Je viens de comprendre, c'était tout bête : le hachage était différent puisque c'est le hachage du hachage originel, le password de player a été haché 2x. J'ai donc supprimé le beforeSave du model.