Bonjour à tous,

J'essaie de changer changer mon système de cryptage. Jusqu'à maintenant je cryptais avec sha1 mes mots de passes. Ca fonctionne bien, pas de problèmes. Puis on m'a dis que c'était plus assez sécure, du coup j'ai décidé de changer. Mais le problème c'est que je n'arrive pas à le faire fonctionner. Il n'y a même aucun changement dans la base de donnée. J'ai pourtant suivi ce qu'ils indiquaient sur manual php, mais j'ai dû rater quelque chose.

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
48
49
50
51
52
 
<?php
session_start();
 
require("includes/init.php"); 
include('filters/guest_filter.php');
 
 if (isset($_POST['login'])) {
 
	 if (not_empty(['identifiant', 'password'])) {
 
		 extract($_POST);
 
		 $q = $db->prepare("SELECT id, pseudo, avatar, email,password AS hashed_password FROM users
							WHERE (pseudo = :identifiant OR email = :identifiant)
							:password AND active ='1'")
		$q->execute(array(
					'identifiant' => $identifiant,
					//'password' => sha1($password)// A l'origine
					));
 
		//$userHasBeenFound = $q->rowCount();
		$user = $q->fetch(PDO::FETCH_OBJ);
 
		 if($user && password_verify($password, $user->hashed_password)) {// A l'origine if ($userHasBeenFound)
 
 
				$user = $q->fetch(PDO::FETCH_OBJ);//Récupère l'objet
				/*On garde son id, email et son pseudo en session.*/
				$_SESSION['user_id'] = $user->id;
				$_SESSION['pseudo'] = $user->pseudo;
				$_SESSION['avatar'] = $user->avatar;
				$_SESSION['email'] = $user->email;
 
			redirect_intent_or('profile.php?id='.$user->id); 
 
		}else{
			 set_flash('Combinaison Identifiant/Password Incorrect', 'danger');  
			 save_input_data();
		}
 
	 }
 
 } else {      
 
		clear_input_data();  //S'il vient d'arriver les champs ne sont pas préremplis.
 
		} 
?>
 
 
<?php require ('views/login.view.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
 
<?php
session_start();//Démarre la session.
 
require("includes/init.php");
include('filters/guest_filter.php');
 
 
 
//Si le formulaire a été soumis
if(isset($_POST['register'])){
 
	if(not_empty(['name','pseudo','email','password','password_confirm'])){
 
		$errors = [];//Tableau contenant l'ensemble des erreurs
 
 
		extract($_POST);
 
 
		if(mb_strlen($pseudo) < 3){
 
			$errors[] = "Pseudo trop court ! (minimum 3 caractères)";
			}
 
			if( !filter_var($email, FILTER_VALIDATE_EMAIL) ){//FILTER_VALIDATE_EMAIL Filtre si c'est un format email valide
				$errors[] = "Adresse email invalide ! ";
			}
 
			if(mb_strlen($password) < 6){
 
			$errors[] = "Mot de passe trop court ! (minimum 6 caractères)";
			} else{
				if($password != $password_confirm){
					$errors[] = "Les deux mots de passe ne concordent pas ! ";
				}
			}
			if(is_already_in_use('pseudo', $pseudo, 'users')){
				$errors[] = "Pseudo déjà utilisé ! ";
			}
			if(is_already_in_use('email', $email, 'users')){
				$errors[] = "Adresse E-mail déjà utilisé ! ";
			}
			if(count($errors) == 0){
				//Envoi d'email d'activation
				$to = $email;
				$subject = WEBSITE_NAME. " - ACTIVATION DE COMPTE";
				/********************************************************/
				/*nouveau hashage de mot de passe                       */
				$password = password_hash($password, PASSWORD_BCRYPT);
				/********************************************************/
				//$password = sha1($password);
				//$token = sha1($pseudo.$email.$password);//Le token c'est le pseudo, le password et l'email concaténé
 
				//Récupération du mail déjà formaté
				ob_start();//Garde tous ce qu'on va faire dans la mémoire tampon
				require('templates/emails/activation.tmpl.php');//Inclus le fichier sans l'afficher
				$content = ob_get_clean();
 
 
 
 
 
				$faiMail = ini_set("SMTP", "smtp.orange.fr"); // fai = Fournisseur d'Accès Internet
				$portMail = ini_set("smtp_port", "25"); // Le numéro du port change en fonction du FAI. Pour Orange, c'est le port 25 (pour envoyer des emails).
				$mailSender = ini_set("sendmail_from", "drouetphilippe1@gmail.com"); // Tu peux mettre l'adresse email que tu veux.
 
				$headers = 'MIME-Version: 1.0' . "\r\n"; 
				$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
 
				//Envoi du mail d'activation
				mail($to, $subject, $content, $headers);//Envoi le mail
 
				/********************************/
				/*On met les informations en bdd*/
				/********************************/
				$q = $db->prepare('INSERT INTO users(name, pseudo, email, password)
									VALUES(:name, :pseudo, :email, :password)');
 
				$q->execute([
					'name' => $name,
					'pseudo' => $pseudo,
					'email' => $email,
					'password' => $password
				]);	
 
 
				set_flash("Mail d'activation envoye ! ", 'success');//Message de succès
				redirect('index.php');//On peut mettre : header('Location: index.php');à la place de redirect
				//exit(); à ajouter si on utilise le header
						/******************************/
 
			} else{
				save_input_data();
			}
 
	}else {
		$errors[]= "Veuillez remplir tout les champs ! ";
		save_input_data();
	}
}
else{
	clear_input_data();//Fonction qui permet de détruire toutes 
	//les informations en session si on revient sur inscription 
	//après que celle-ci soit acceptée.
}
?>
 
<?php require('views/register.view.php');?>
J'ai laissé l'ancien "système" en commentaire.

Si quelqu'un voit quelque chose que je n'aurais pas vu ou bien pas compris, qu'il n'hésite pas.