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.