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 :

Comparer le mot de passe entré dans un formulaire avec un mot de passe hashé en SHA1


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 28
    Points : 19
    Points
    19
    Par défaut Comparer le mot de passe entré dans un formulaire avec un mot de passe hashé en SHA1
    Bonjour,

    J'ai créé un petit formulaire prenant en compte:
    -un identifiant
    -un mot de pass

    Cependant, le mot de pass est hashé en SHA1 dans la base de donnée. Je ne sais donc pas vraiment comment faire pour vérifier que le mot de passe entré soit comparé au mot de passe chiffré.

    Formulaire 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
    26
    27
    28
    <html>
     <head>
      <title>Connexion au site</title>
     </head>
     <body>
      <form method="post" action="verifLogin.php">
       <table border="0" width="400" align="center">
        <tr>
         <td width="200"><b>Vôtre login</b></td>
         <td width="200">
          <input type="text" name="username">
         </td>
        </tr>
        <tr>
         <td width="200"><b>Vôtre mot de passe<b></td>
         <td width="200">
          <input type="password" name="sha_pass_hash">
         </td>
        </tr>
        <tr>
         <td colspan="2">
          <input type="submit" name="submit" value="login">
         </td>
        </tr> 
       </table>
      </form>
     </body>
    </html>
    Partie 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
    <?php
    // On démarre la session
    session_start();
    $loginOK = false; 
     
    // On n'effectue les traitement qu'à la condition que 
    // les informations aient été effectivement postées
    if ( isset($_POST) && (!empty($_POST['username'])) && (!empty($_POST['sha_pass_hash'])) ) {
     
      extract($_POST);  
     
    // on se connecte à MySQL 
    $db = mysql_connect('localhost', 'demonyak', '******'); 
    // on sélectionne la base 
    mysql_select_db('madb',$db); 
     
      // On va chercher le mot de passe afférent à ce login
      $sql = "SELECT username, epk, sha_pass_hash FROM account WHERE username = '".addslashes($username)."'";
      $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
     
      // On vérifie que l'utilisateur existe bien
      if (mysql_num_rows($req) > 0) {
         $data = mysql_fetch_assoc($req);
     
        // On vérifie que son mot de passe est correct
        if ($sha_pass_hash == $data['sha_pass_hash']) {
          $loginOK = true;
        }
      }
    }
     
    // Si le login a été validé on met les données en sessions
    if ($loginOK) {
      $_SESSION['username'] = $data['username'];
      $_SESSION['epk'] = $data['epk'];
    }
    else {
      echo 'Une erreur est survenue, veuillez réessayer !'; 
    }
    ?>
    En espérant obtenir de l'aide
    Bonne journée à tous.

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,

    Hashe le mot de passe entré dans le formulaire et compare-le à celui qui est dans la DB :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (sha1($motDePasseDuFormulaire) == $MotDePasseDeLaBD){
    -
    -
    }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Ah merci, très bonne idée ! Et ça fonctionne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Désactiver la touche entrée dans un formulaire
    Par Mat67 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 24/02/2013, 06h31
  2. Réponses: 0
    Dernier message: 05/02/2009, 13h16
  3. [HTML]Problème avec la touche "entrée" dans un formulaire
    Par WerKa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/06/2007, 20h34
  4. conserver les valeurs entrées dans un formulaire
    Par mitmit dans le forum Langage
    Réponses: 5
    Dernier message: 03/05/2007, 10h09
  5. Ctrl -] ne passe pas dans une console avec vim
    Par Celelibi dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 10/03/2006, 13h35

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