Bonjour à tous,

Je développe présentement un site web en php, et je tente de faire fonctionner mon système de login/password, mais avec le mot de passe crypté.

Je n'ai aucuns problèmes à le faire fonctionner sans cryptage, mais j'ai un petit problème avec le cryptage. Lorsque je crée une nouvelle entrée de compte, j'encrypte le mot de passe avant de l'envoyer dans la base de donnée à l'aide de la fonction $crypt, mon code est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
$pwrd = $_POST['txtPassword'];
 
$pass = crypt($pwrd);

Dans la base de donnée, le mot de passe apparait encrypté, donc la n'est pas le problème. Le problème viens du fait que lorsque je tente de me connecter, il ne reconnait pas le mot de passe lorsqu'il est encrypté.

J'exécute le code suivant :

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
 
<?php 
if (isset($_POST['login']))
{
	$pwrd = $_POST['password'];
 
	mysql_connect(".............");
	mysql_select_db("GOAccount");
 
	$donnee = mysql_query("SELECT * FROM Users");
 
 
	while ($valeur = mysql_fetch_array($donnee))
	{
		if ($_POST['login'] == $valeur['username'])
		{
			$pass = crypt($pwrd);
			if ($valeur['password'] == $pass)
			{
				$_SESSION['Login'] = $valeur['username'];
				$freebie = $valeur['username'];
				echo("<p align='justify' class='texte'>Merci de vous être identifié, $freebie. Vous serez redirigé vers la page d'accueil d'ici 5 secondes... <a href='index.php' class='menu2'>Cliquez ici</a> pour y accéder dès maintenant. </p>");
 
			}
			else
			{
				echo("<p align='justify' class='texte'>Le nom d'utilisateur ou le mot de passe que vous avez entré est invalide. </p>");
			};
		};
	};
        mysql_close();   
}             
else
{
	echo("<p align='justify' class='texte'>Veillez entrer un nom d'utilisateur et un mot de passe. </p>");
};
?>
En entrant le nom d'utilisateur et le mot de passe corrects, il me fait une erreur comme de quoi que mon mot de passe ou nom d'utilisateur n'est pas correct, mais il ne fait pas si j'encrypte pas le mot de passe avec la fonction crypt.


J'imagine que sa ne fonctionne pas car la fonction crypt ne donnera pas toujours exactement la même chaine pour l'encryption d'un même mot de passe, et c'est pourquoi sa ne fonctionne pas, mais il doit forcément avoir une solution.

J'ai une bonne base C++, mais je débute en php, donc je ne connais pas encore beaucoup de choses, et j'ai peut-être passé à coté d'un détail très insignifiant.

J'aimerais avoir un peu d'aide avec cela, car je n'aime pas vraiment l'idée de laisser tous mes mots de passes non encryptés...


Merci !

-Winder