IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

recuperer mot de passe haché avec md5


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Points : 9
    Points
    9
    Par défaut recuperer mot de passe haché avec md5
    Bonjour,

    Je n'arrive pas à m'identifier grace à mon formulaire. J'ai stocké deux mots de passe dans la base de données, un avec hachage md5, l'autre sans cryptage.

    Sans le hachage md5, ça fonctionne, mais quand j'inclus la fonction md5, je suis renvoyé à la page "Mauvais login".

    Voilà le code concerné :

    Code php :

    Code : 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
    39
    40
    41
    <?php
    include("../config/config.php");
     
    $login = 'login';
    $password = md5('password');
    // on se connecte à MySQL 
    $db = mysql_connect($host, $login_host, $pass_host);  
     
    // on seléctionne la base 
    mysql_select_db($hostname,$db);
     
    if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['password'])) {
      extract($_POST);
      // on recupère le password de la table qui correspond au login du visiteur
      $sql = "select password from admin where login='".$login."'";
      $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
      $data = mysql_fetch_assoc($req);
     
        if($data['password'] != md5($password)) {
        echo '<p>Mauvais login / password. Merci de recommencer</p>';
        include('login.php'); // On inclut le formulaire d'identification
        exit;
      }
      else {
        session_start();
        $_SESSION['login'] = $login;
     
        echo 'Vous etes bien logué';
        // ici vous pouvez afficher un lien pour renvoyer
        // vers la page d'accueil de votre espace membres
      }   
    }
    else {
      echo '<p>Vous avez oublié de remplir un champ.</p>';
       include('login.php'); // On inclut le formulaire d'identification
       exit;
    }
     
     
    ?>
    Et dans le formulaire d'inscription "login.php" :

    Code html :

    Code : 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
    <form action="ver.php" method='post'>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <table width="430" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
          <td width="430" bgcolor="#FC6907"><div align="center">
            <p><strong>Page d'inscription</strong></p>
          </div></td>
        </tr>
      </table>
      <br>
      <table align="center" border="0">
      <tr>
        <td>Login :</td>
        <td><input type="text" name="login" maxlength="16"></td>
      </tr>
      <tr>
        <td>Password</td>
        <td><input type="password" name="password" maxlength="50"></td>
      </tr>
      <tr>
        <td colspan="2" align="center"><input type="submit" value="Valider"></td>
      </tr>
    </table>
    </form>
    Merci d'avance à qui voudra bien m'apporter la solution !

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    tu fais deux fois le md5

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    J'ai retiré le md5 à


    Code php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($data['password'] != md5($password)) {
    J'ai laissé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $password = md5('password');
    Et je ne peux toujours pas me logger.

    Lorsque je fais un echo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        if($data['password'] != $password) {
        echo '<p>Mauvais login / password. Merci de recommencer</p>';
    	echo md5($password); 
        include('login.php'); // On inclut le formulaire d'identification
        exit;
    Le mot de passe s'affiche haché tel qu'il est dans la base de données... Peut-être une piste ?

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    c'est l'inverse qu'il fallait, faire, d'ailleurs les 2 première ligne servent a rien, ton isset($_POST) non plus

    pour le reste suffis de tester tes valeurs avec un var_dump

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    J'ai mis un var_dump pour la variable $password, ça m'affiche :

    string(8) "'le mot de passe à 8 caractères'"

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Tu m'as mis sur la bonne piste. En testant les valeurs, je me suis aperçu que le mot de passe généré par le formulaire d'inscription était "password", et non celui que j'avais entré :

    Code php formulaire d'inscription :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $password_admin = md5('password') ;//m'inscrit le mot password en haché dans la base de données, pourtant je croyais qu'il fallait procéder ainsi.
    Avec ça, ça marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $password_admin = md5('azerty'.$password) ;

Discussions similaires

  1. Récupération mot de passe haché avec md5
    Par Anibel dans le forum Langage
    Réponses: 4
    Dernier message: 16/02/2013, 16h04
  2. Mot de passe chiffré haché avec md5 ne fonctionne pas
    Par san1981 dans le forum Requêtes
    Réponses: 1
    Dernier message: 24/10/2011, 14h04
  3. Mot de passe haché avec MD5 dans la base de données
    Par lelapinrusse dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 13/06/2009, 21h31
  4. stockage de mot de passe. ASP contre md5
    Par christel1982 dans le forum ASP
    Réponses: 15
    Dernier message: 02/12/2005, 08h45
  5. Réponses: 5
    Dernier message: 30/11/2004, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo