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 php : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Affiche : 78736b340be49f11a512e13bf11bf074a7739106
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 echo sha1(",#$)*!)+!'motdepasse,#$)*!)+!'");
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![]()
Partager