Bonjour.
Mon code était hashé en sha512 (LIGNE 13 en commentaire du code ci-dessous).
Mais j'ai décidé de changer le système de Hashage en bcrypt(LIGNE 14 du code ci-dessous)en me basant sur la librairie: https://github.com/ircmaxell/password_compat.
Ceci a bien fonctionné pour les inscriptions car mon constat est que dans ma BDD, les Mots de passe sont bien hashés en bcrypt.
Mais mon souci actuel se pose au niveau de la connexion qui ne cesse de me renvoyer l'erreur CONNEXION IMPOSSIBLE disponible à la LIGNE 32 dans mon code
de traitement du formulaire de la connexion (ci-dessous) à chaque fois que je veux me connecter:
VOICI MON CODE PHP POUR LA CONNEXION :::
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
42
43
44
45
46
47 <?php require_once('password.php'); function doLogin() { $errorMessage = ''; $accno = htmlspecialchars((int)$_POST['accno']); $pwd = htmlspecialchars($_POST['pass']); // pass en clair // ici on le hash avec PHP et on oublie SQL // $pwd_hash = hash('sha512',$pwd); //Hash en sha512 $pwd_hash = password_hash($pwd, PASSWORD_DEFAULT); //Hash en bcrypt avec l'appel de la librairie === require_once('password.php'); === ci-dessus. $sql = 'SELECT u.fname, u.lname, u.email, u.is_active, u.phone, a.acc_no, a.user_id, a.pin, a.type, a.status, ad.address, ad.city, ad.state, ad.zipcode FROM tbl_users u, tbl_accounts a, tbl_address ad WHERE a.acc_no = ? AND u.pwd = ? AND u.id = a.user_id AND ad.user_id = u.id AND u.is_active != ?'; $result = dbQuery($sql,$accno,$pwd_hash,"FALSE"); if (dbNumRows($result) == 1) { $row = dbFetchAssoc($result); $_SESSION['hlbank_tmp'] = $row; $_SESSION['hlbank_user_name'] = strtoupper( $row['fname'].' '.$row['lname']); header('Location: pin.php'); exit; } else { $errorMessage = 'CONNEXION IMPOSSIBLE'; } return $errorMessage; } // CODE FONCTION "dbNumRows($result)" et "dbFetchAssoc($result)" function dbFetchAssoc($result) { return $result->fetch(PDO::FETCH_ASSOC); } function dbNumRows($result) { return $result->rowCount(); }
C'est vrai qu'en suivant le Tuto que j'ai vu sur le Hash bcrypt (https://notes-de-cours.com/web/blogu...taire-sous-php), il est mentionné que pour vérifier le mot de passe lors d'une connexion, il faut faire une condition sur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part password_verify('mon-password', $hash)
Mais dans mon cas, je pense que je devais d'abord hashé avant de faire un SELECT comme dans mon code ci-dessus.
Alors, aidez-moi à corriger cette erreur qui m'empêche de me connecter en renvoyant le message d'erreur CONNEXION IMPOSSIBLE ???
Merci d'avance.
Partager