Décrypter un champ en MD5

Résolu/Fermé
Tobi86 Messages postés 405 Date d'inscription mercredi 7 décembre 2011 Statut Membre Dernière intervention 9 mai 2018 - Modifié par Tobi86 le 23/04/2014 à 14:11
Tobi86 Messages postés 405 Date d'inscription mercredi 7 décembre 2011 Statut Membre Dernière intervention 9 mai 2018 - 25 avril 2014 à 16:30
Bonjour,

Voilà je suis entrain de développer une application pour ma section de BTS, et j'ai un petit souci sur ma fonction mot de passe oublié (pour l'authentification). Au final, le type qui a oublié son mot de passe entre son login et un mail contenant son mot de passe lui est envoyé sur son adresse liée à son compte. Mais je n'en suis pas rendu a a ce point là. Actuellement j'arrive à récupérer le mail et le mot de passe mais il est crypté en MD5 et lors de mes tests forcément j'affiche le MDP crypté... Donc existe-il une fonction qui permet de décrypté et de m'afficher le mot de passe normalement ?

Merci de bien vouloir m'aider :)

Voici le code actuel :
 $login=(isset($_POST['login'])) ? $_POST['login'] : "";


 if (isset($_POST['login']))
  {
   try {
   include("../connexion.php");
   $req="SELECT DISTINCT  mail, password FROM users_profs WHERE login='".$login."'";
   $res = $connect->query($req);
   var_dump($req);

   //Traitement du résultat
   while($row=$res->fetch(PDO::FETCH_ASSOC))
    {
     $mail='"'.$row['mail'].'"';
     $password='"'.$row['password'].'"';
    }
    echo $mail;
    echo $password;
   } catch (PDOException $e) {
       echo 'Echec de la connexion : ' . $e->getMessage();
       exit;
   }
  }
 else 
  {
    echo '<body onLoad="alert(\'aucun utilisateur a été rentré...\')">';
    echo '<meta http-equiv="refresh" content="0;URL=../log/forgotten-passwd.php">';
  }


Tobi.
"Trois savoirs gouvernent le monde : le savoir, le savoir-vivre et le savoir-faire,
Mais le dernier souvent tient lieu des deux autres."

6 réponses

Utilisateur anonyme
23 avril 2014 à 14:28
Bonjour

Si tu n'as pas d'autre trace du mot de passe original que sa signature MD5 dans ta base, tu ne peux pas retrouver le mot de passe : c'est aussi simple que ça.
Mais ce n'est pas grave. Dans ce genre de cas, tu génères un mot de passe aléatoire que tu envoies à l'utilisateur distrait, et toi tu gardes la signature MD5 dans ta base pour futures vérifications. Si ton interface le permet, il pourra ensuite mettre un mot de passe à sa convenance, sinon tant pis pour lui, il faudra bien qu'il vive avec celui que tu lui auras fourni.
2
Tobi86 Messages postés 405 Date d'inscription mercredi 7 décembre 2011 Statut Membre Dernière intervention 9 mai 2018 57
23 avril 2014 à 14:41
Merci de votre réponse ! Mais cela ne m'arrange pas vraiment.... Mais bon tant pis je vais devoir faire avec. Pour le moment mon interface n'est pas codée en intégralité donc c'est pas un souci. Donc je me tourne vers la solution que vous me proposez. Donc si j'ai bien compris :
- je génère un MDP aléatoirement,
- je le stocke dans ma BDD puis lui envoie par mail,
-l'utilisateur se log avec le MDP généré à l'instant.

Donc ci j'ai bien compris il faut que je fasse un update sur la cellule du MDP de l'utilisateur ?
0
Utilisateur anonyme
23 avril 2014 à 14:46
il faut que je fasse un update sur la cellule du MDP de l'utilisateur ?
oui, quelque chose du genre
UPDATE abonnes SET mdp=MD5('$mdp') WHERE id=$id

Mais, comme l'a justement fait remarquer Pitet, le MD5 ça n'est vraiment pas top en matière de sécurité.
0