SHA1 comme MD5 sont obsolètes pour traiter des mots de passe.
http://grunk.developpez.com/tutoriel...sse-securises/
Version imprimable
SHA1 comme MD5 sont obsolètes pour traiter des mots de passe.
http://grunk.developpez.com/tutoriel...sse-securises/
Maintenant que j'ai réussi sans chiffré le mot de passe, j'essaie de chiffré le mot de passe.
J'ai compris que le faite de chiffré le mot de passe ce fait dans la table (exemple: user), j'ai trouver la fonction password_hash de PHP.
Par contre c'est la première fois que j'essaie de chiffré un mot de passe donc je ne sais pas où ce place la fonction.
Avant il y a les conditions que j'ai décidé pour le login et le mot de passe...
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 //on vérifie si $message_erreur est vide if(empty($message_erreur)){ //on met dans une variable chaque valeur du formulaire $login = trim($_POST["login"]); $pass = trim($_POST["pass"]); echo password_hash($pass, PASSWORD_DEFAULT); // insert et utiliser mysqli_real_escape_string //j'ai pas mis le mysqli_real_escape_string car il fait planté le code $sql_insert = "INSERT INTO user (id_user, login, pass) VALUES (NULL, '".$login."', '".$pass."')"; if(!mysqli_query($connexion, $sql_insert)){ die ('ERREUR '.mysqli_error($connexion)); } // le formulaire ne sera pas réaffiché $affiche_formulaire = TRUE; } // sinon else {
Bonjour,
le hashage du mot de passe (avec password_hash) s'effectue :
- au moment de l'inscription
- ou de la modification du mot de passe
A la CONNEXION :
- on compare (avec password_verify) le mot de passe fourni (en clair) avec celui (hashé) présent en Bdd pour ce login.
Ah bon ? :koi: -> mysqli_real_escape_stringCitation:
//j'ai pas mis le mysqli_real_escape_string car il fait planté le code
-> Peux-tu le remettre, et montrer le message d'erreur complet ?Citation:
Attention
Securité : Le jeu de caractères par défaut
Le jeu de caractères doit être défini soit au niveau serveur, soit avec la fonction API mysqli_set_charset() pour qu'il affecte la fonction mysqli_real_escape_string().
Ensuite, c'est le mot de passe hasché qu'il faut enregistrer !
D'autre part, dans la requete INSERT, inutile de mettre le id_user (auto-incrémenté).
N.B. Comme on a utilisé password_hash, il n'est pas nécessaire d'utiliser mysqli_real_escape_string sur le mot de passe hashé.Code:
1
2
3 $pass_hashe = password_hash($pass, PASSWORD_DEFAULT); $sql_insert = "INSERT INTO user (login, pass) VALUES ('". mysqli_real_escape_string($login) ."', '". $pass_hashe ."')";
Par contre, sur le login, oui !
Sinon, LE MIEUX est d'utiliser une requête préparée !
pour le real_string c'est pas grave.
par contrene m'affiche rien il n'y a même pas de message d'erreur. c'est juste qu'il me rentre rien dans la base de donnée et aussi qu'il me met page blanche.Code:$pass_hashe = password_hash($pass, PASSWORD_DEFAULT);
le problème c'est la version du php pour finir.