Grain de sel dans l'insertion
Bonjour,
dans un formulaire Zend, j'essaie d'insérer un grain de sel dans mon mot de passe puis de hasher le tout en sha1. Tout se passe bien, le mdp hashé ainsi que le sel arrivent en base sauf que quand j'effectue ensuite le test manuellement de vérification (concaténation sel+mdp+sel) le tout en sha1 je n'obtient pas la même clé...
Mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
public function indexAction() {
$form = new My_Form_Inscription();
// --- Création du nouveau compte si les données sont correctement saisies
if ($this->_request->isPost() && $form->isValid($_POST)) {
$sel = $this->getSel();
$password = sha1($sel.$form->getValue('mdp').$sel);
$users = new My_Model_Users();
$data = array(
'username' => $form->getValue('username'),
'password' => $password,
'sel' => $sel,
'email' => $form->getValue('email')
);
if ($users->insert($data))
$this->_forward('done');
else
$this->_forward('fail');
}
$this->view->form = $form;
}
private function getSel() {
$ascii = range('!', '/');
$sel = '';
for ($i = 0; $i < 10; $i++)
$sel .= $ascii[mt_rand(0, 14)];
return $sel;
} |
Ca doit être gros comme une maison..mais je vois pas !
Ex:
création d'un compte avec mdp = 'motdepasse'
- En base : sel->,#$)*!)+!' password->3fd6c872be1e281d13a7cbf6cc49b3b9001c2f06
- Test manuel :
Code:
1 2
|
echo sha1(",#$)*!)+!'motdepasse,#$)*!)+!'"); |
Affiche : 78736b340be49f11a512e13bf11bf074a7739106
PS: j'ai tenté de hasher dans mon tableau $data ou à l'extérieur, c'est pareil. Idem avec l'algo md5, j'ai testé pour voir.
Qui voit mon erreur ? Je sature...:(
Merci :ccool: