[php-mysql] probleme de décryptage de mots de passe [resolu]

probleme de décryptage de mots de passe [resolu] [php-mysql] - PHP - Programmation

Marsh Posté le 19-07-2004 à 10:08:25    

Bonjour à tous,
j'ai un petit problème tout bête pour la création d'une interface.
Je voudrais que le client puisse se logger avec username/password
Seulement, le mot de passe que l'utilisateur entre est toujours différent du mot de passe crypté par mysql.
J'utilise la fonction md5() sur le mot de passe saisi avant de le comparer à celui crypté dans mysql, mais j'ai toujours deux mots de passe différents. Est ce dû à ma version de mysql (4.0)?? pourtant j'ai vérifié et md5 est bien compatible a priori avec mysql 4.0.
En gros, voila mon code:

Code :
  1. $password=md5($_POST['password']);
  2. $req="select password from clients where login='".$login."'";
  3. $res=mysql_query($req);
  4. $row=mysql_fetch_array($res);
  5. if ($row['password']) == $password) echo 'login ok';
  6. else echo 'erreur de login';


Et donc j'ai toujours affiché 'erreur de login'
J'ai essayé d'afficher $password et $row['password'] et les deux sont differents. Celui de la base fait 16 caracteres et celui créé par md5 fait 32 caracteres
Merci pour votre aide


Message édité par force_jaune le 19-07-2004 à 10:58:25
Reply

Marsh Posté le 19-07-2004 à 10:08:25   

Reply

Marsh Posté le 19-07-2004 à 10:10:59    

le champ password est un nom protegé par mysql je croit

Reply

Marsh Posté le 19-07-2004 à 10:11:50    

arf ca serait tres balot ça :D
Merci pour ton aide, je vais tester

Reply

Marsh Posté le 19-07-2004 à 10:12:05    

si les deux sont différents, c'est simplement parce que le mot de passe est faux.
 
md5 fonctionne parfaitement (ça n'a rien à voir avec MySQL)
 
Assure-toi toutefois d'avoir un varchar(32) pour stocker le password md5


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 19-07-2004 à 10:14:13    

== égalité
= affectation ?

Reply

Marsh Posté le 19-07-2004 à 10:15:26    

oui

Reply

Marsh Posté le 19-07-2004 à 10:16:10    

hop le fou > je me suis planté en copiant mon code ici, sur ma page c'est bon ;) j'ai édité dsl
JagStang > j'ai bien un varchar (32)

Reply

Marsh Posté le 19-07-2004 à 10:18:41    

ce qui est bizarre, c'est que si il faut un varchar 32, c'est sans doute que mysql cypte sur 32 caracteres. Or moi j'ai 16 caracteres pour les mots de passe dans ma base.
Au debut je n'avais pas mis un varchar 32 pour le password, donc peut etre que ca vient de la. Je vais supprimer ma table et la refaire pour voir

Reply

Marsh Posté le 19-07-2004 à 10:21:50    

d'ailleurs, lorsque l'on crée la table, est ce qu'il faut spécifié que le champ passwd est de type password ou c'est juste lors de l'insertion des données que je le spécifie??

Reply

Marsh Posté le 19-07-2004 à 10:35:54    

bon, ca ne marche toujours pas.  
J'ai ça :  
mysql: 0412a6b11bb8f554 post: b4d9c1694b0d0381cecfb246b08f7615
a chaque fois ça m fais ça. Et pourtant je suis certain de taper le bon password ;)


Message édité par force_jaune le 19-07-2004 à 10:36:32
Reply

Marsh Posté le 19-07-2004 à 10:35:54   

Reply

Marsh Posté le 19-07-2004 à 10:42:17    

ton post est beaucoup trop long

Reply

Marsh Posté le 19-07-2004 à 10:45:22    

force_jaune a écrit :

ce qui est bizarre, c'est que si il faut un varchar 32, c'est sans doute que mysql cypte sur 32 caracteres. Or moi j'ai 16 caracteres pour les mots de passe dans ma base.
Au debut je n'avais pas mis un varchar 32 pour le password, donc peut etre que ca vient de la. Je vais supprimer ma table et la refaire pour voir


mysql ne crypte pas. c'est php qui le fait. et md5 génère toujours un digest de 32 caractèress


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 19-07-2004 à 10:51:07    

Est ce qu'on pourrait voir le code d'insertion dans la base du mot de passe crypté?

Reply

Marsh Posté le 19-07-2004 à 10:55:11    

voila le code avec lequel je rentre les données.
Je suis en train de me demander si j'ai pas fait le boulet vu que pour l'insertion je n'utilise pas md5 :) Des fois je me fais peur.  
 

Code :
  1. $req="insert into clients (login, passwd) values ('".$login."',PASSWORD('".$password."'))";
  2. $res=mysql_query($req) or die ("erreur lors de l'entrée des données dans la base de données <br>".$req);

Reply

Marsh Posté le 19-07-2004 à 10:57:34    

ok c'est bien ça, je suis vraiment une chevre. Je vais retourner a mon scrabble, j'arrete l'informatique
En effet, PASSWORD() ne crypte pas en md5, ca parait tellement con que j'y avais pas fait gaffe

Reply

Marsh Posté le 19-07-2004 à 10:57:39    

boulay


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 19-07-2004 à 10:58:44    

lol oui :D
dsl de vous avoir fais perdre votre tps

Reply

Marsh Posté le 19-07-2004 à 11:00:33    

[:rofl2]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed