Probleme avec MD5
bloomingdals
-
[Dal] Messages postés 6373 Statut Contributeur -
[Dal] Messages postés 6373 Statut Contributeur -
Bonjour,
j'ai 2 scripts l'un pour l'inscription, l'autre pour l'authentification.
quand j'éxécute mon fichier php d'inscription, il focntionne très bien et mon mot de passé hashé avec md5 est enregistré correctement dans ma table sql.
mais quand je veux me connecter avec mon compte, je remarque que le mot de passe que j'ai saisi et celui enregistré ont deux hash différents pourtant c'est le même mot de passe.
j'ai fais un echo des deux mots de passe et j'ai remarqué que celui que j'ai saisi possède deux caractère en plus à la fin.
voila mon code pour la connexion:
merci
j'ai 2 scripts l'un pour l'inscription, l'autre pour l'authentification.
quand j'éxécute mon fichier php d'inscription, il focntionne très bien et mon mot de passé hashé avec md5 est enregistré correctement dans ma table sql.
mais quand je veux me connecter avec mon compte, je remarque que le mot de passe que j'ai saisi et celui enregistré ont deux hash différents pourtant c'est le même mot de passe.
j'ai fais un echo des deux mots de passe et j'ai remarqué que celui que j'ai saisi possède deux caractère en plus à la fin.
voila mon code pour la connexion:
$sql = "select Password from Authentication where Username='".$_POST['username']."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['Password'] != md5($_POST['password'])) {
echo $data['Password'];
echo md5($_POST['password']);
...
merci
A voir également:
- Probleme avec MD5
- Md5 checksum - Télécharger - Web & Internet
- Md5 windows - Télécharger - Gestion de fichiers
- Ouvrir fichier md5 - Télécharger - Gestion de fichiers
- MST MD5 - Télécharger - Gestion de fichiers
- Comment décrypter du MD5 - Forum Programmation
1 réponse
Salut bloomingdals,
Sans plus de détails sur "l'autre mot de passe" et la façon dont il est généré, on ne peut que faire des hypothèses.
Si c'est exactement le même mot de passe, que c'est md5 qui est utilisé, et qu'il n'est pas ajouté de grain de sel à ce qui est hashé par md5, le résultat devrait être le même (ou alors la /les implémentations de md5 utilisées peuvent être erronées).
Peut-être l'autre mot de passe est-il hashé par md5 avec un grain de sel.
On peut ajouter un grain de sel manuellement à ce qui est passé à md5, pour éviter les "rainbow tables".
mais tant qu'à faire, c'est mieux sans doutes mieux d'utiliser les fonctions Php crypt ou hash (https://www.php.net/manual/fr/faq.passwords.php#faq.passwords.fasthash)
Dal
Sans plus de détails sur "l'autre mot de passe" et la façon dont il est généré, on ne peut que faire des hypothèses.
Si c'est exactement le même mot de passe, que c'est md5 qui est utilisé, et qu'il n'est pas ajouté de grain de sel à ce qui est hashé par md5, le résultat devrait être le même (ou alors la /les implémentations de md5 utilisées peuvent être erronées).
Peut-être l'autre mot de passe est-il hashé par md5 avec un grain de sel.
On peut ajouter un grain de sel manuellement à ce qui est passé à md5, pour éviter les "rainbow tables".
$pass = 'secret';
$salt = 'Y81.35,005jEk2S054m8p1JI7{"543544bI8ao@66l4d56qN15ftN3OTiv';
$salted_md5_hash = md5($salt.$pass);
$plain_less_secure_md5_hash = md5($pass);
mais tant qu'à faire, c'est mieux sans doutes mieux d'utiliser les fonctions Php crypt ou hash (https://www.php.net/manual/fr/faq.passwords.php#faq.passwords.fasthash)
Dal