Modérateur PHPfrance |
8758 Messages
12 mars 2017, 11:39
salut
c'est normal
password_hash est basée sur blowfish et pas sha1, donc les hash ne correspondent pas.
d'ailleurs rien que la longueur peut te mettre la puce à l'oreille
- avec password_hash : 60 caractères
- avec
sha1 : 40 caractères
si ta bdd est production c'est un peu foutu, sinon c'est bon
pour nuancer tu peux
- tu peux tenter en récupérant des rainbow tables sh1 mais ce n'est même pas certain
- Forcer tout le monde a changer son mot de passe à la premier connexion. Pour cela ajoute une colonne pour le mot de passe hash avec password_hash. Lors de la connexion si cette colonne n'est pas vide tu utilise password_hash et compare que sur cette colonne. Sinon utilise sha1 pour l'authentification et demande a changer le mot de passe. Lorsque c'est fait n'oublie pas de vider la colonne avec le sha1.
quand tout le monde aura changer son mot de passe tu dégages l'ancienne colonne.
autre solution plus brutale et moins sécurisée (utilisation toute fois sur un intranet ou sur un nombre de compte limité) : si tu as les emails des gens tu leur changes leurs mots de passes par une chaîne aléatoire (différente pour chacun) et tu leurs envois pas email. Si possible il faut qu'a la première connexion il change leurs mot de passe.
cela te permet d'éviter la phase de migration (enfin elle est la le temps du script et d'envoyer les emails c'est pas long).
@+
Il en faut peu pour être heureux ......