Bonjour,

voilà j'ai repris les codes disponible sur se site : http://culttt.com/2013/01/21/why-do-you-need-to-salt-and-hash-passwords/

Tout à fonctionner pour faire un gros cryptage sauf que je n'arrive pas à vérifier si c’est bien le bon mot de passe.

Code :

$s = new Security;
            // Generate a Salt
            $salt = $s->salt();

            $req = $bdd->prepare("SELECT * FROM $bat_web_user WHERE uuid=:uuid");
            $req->execute(array(':uuid'=>$uuid));
            while($data2 = $req->fetch()){
                if($s->pbkdf2($password, $salt, 1000, 32) == $data2['password']){
                    $crypt = 'new';
                    $id = $data2['id'];
                }
                elseif(sha1($password) == $data2['password']){
                    $crypt = 'old';
                    $id = $data2['id'];
                }
                else{
                    $i++;
                    $result['Error'] = "1";
                    $result['Type'] = "danger";
                    $result['Message'] .= "<p>Aucun compte n'a était trouvé.</p>";
                }
            }

Ici, je vérifie si c’est le nouveau cryptage ou l'ancien
Alors dans ma bdd, c’est bien le nouveau mais lui il me dit que le mot de passe n'est pas correcte :'(

Si quelqu'un veut bien m'aider merci :)

5 réponses


Huggy
Réponse acceptée

Si tu travailles avec un Salt unique par user, alors tu dois le stocker dans la base de données en même temps que le password (c'est ce qui est dit dans l'article).
Là tu regénères un Salt

Perso je ne pense pas q'utiliser un salt par user offre une sécurité supplémentaire, par contre je rajoute une partie propre au user comme l'id, l'email ou une combinaison de tout ça.

remy76690
Auteur
Réponse acceptée

J'ai stocker le salt dans la bdd, mais je pense que c'est suffisament sécuriser. J'ai modifier pour avoir du sha512 et lieu du sha256 qui est sous 32bits.

Pour des empreintes de password le sha1 est largement suffisant.
avec une CG qui fait 1 megaHash /s, il te faudra 200 000 ans
Si tu as 200 000 CG il te faudra un an

Je n'ai rien compris pour :
avec une CG qui fait 1 megaHash /s, il te faudra 200 000 ans
Si tu as 200 000 CG il te faudra un an

CG = carte graphique = GPU bien plus efficace qu'un processeur classique
les meilleures peuvent tester 1 million de hash par seconde