Page 1 sur 2
Crypter / Decrypter mon mot de passe
Posté : 06 juil. 2009, 07:52
par Fredy07
Bonjour,
J'utilise AES_ENCRYPT pour crypter le mot de passe, comment faire pour le décrypter et l'envoyer aux utilisateurs?
Merci
Posté : 06 juil. 2009, 08:56
par @rthur
Posté : 07 juil. 2009, 02:05
par Invité
J'ai déjà vu la documentation, mais je ne sais pas comment utiliser la requête pour la décrypter.
Posté : 07 juil. 2009, 07:57
par stopher
Slt ,
juste pour donner mon avis concernant les mots de passe .
A mon sens , ils ne
doivent pas être décryptable , afin de garantir que seul l'utilisateur le connaisse.
A cas ou il le perd , il faut simplement en créer un nouveau .
Les sites qui me renvoient mon mot de passe en clair par mail aprés l'avoir demandé , et bien ca me fou les boules .

Posté : 08 juil. 2009, 16:36
par Invité
Slt ,
juste pour donner mon avis concernant les mots de passe .
A mon sens , ils ne
doivent pas être décryptable , afin de garantir que seul l'utilisateur le connaisse.
A cas ou il le perd , il faut simplement en créer un nouveau .
Les sites qui me renvoient mon mot de passe en clair par mail aprés l'avoir demandé , et bien ca me fou les boules .

Merci stopher, mais je voudrais juste savoir comment en faire pour l'integrer dans mon script
Posté : 08 juil. 2009, 16:47
par stopher
Et bien le principe est assez simple ,
le client clique sur j'ai perdu mon mot de passe ,
Un formulaire demande son identifiant "login".
le client valide
Là ton script génère un nouveau mot de passe , écrase l'ancien par ce nouveau ( toujours crypté sha1 / md5 ou autre ), puis l'envoie par mail à l'adresse du client qu'il a enregistré à son inscription sur ton site .
Le client reçoit son nouveau mot de passe par mail , il peut donc maintenant se connecter , et re-modifier son mot de passe ..
Voilà il n'y a plus qu'à ..
Bonne continuation
Ch.
Posté : 08 juil. 2009, 21:16
par Fredy07
Ce que je veux savoir c'est la méthode avec AES_ENCRYPT et AES_DECRYPT, comment envoyer le vrai mot de passe de l'utilisateur.
Posté : 08 juil. 2009, 21:22
par dunbar
Posté : 11 juil. 2009, 20:43
par Fredy07
voila la requête que j'ai fait, mais il m'affiche le mot de passe crypte:
$sql = "SELECT * FROM membres WHERE username='$username' AND pass = AES_Encrypt('".$cle."','".$pass."')";
// continue de code ici
echo $username. ' votre mot de passe est: '.$pass. '<br>';
Posté : 11 juil. 2009, 20:48
par momox
Normal te répondrais-je vu que c'est ce que tu lui demandes...
Posté : 11 juil. 2009, 20:53
par Fredy07
Normal te répondrais-je vu que c'est ce que tu lui demandes...
j'ai essaye avec:
$sql = "SELECT * FROM membres WHERE username='$username' AND pass = AES_Decrypt('".$cle."','".$pass."')";
et ça me dit que le login est incorrect

Posté : 11 juil. 2009, 21:04
par momox
Normal, tu lui demandes de trouver l'enregistrement correspondant a la version decryptée d'une mot de passe qui n'est autre que le mot de passe décrypté.
Toute donnée que tu veux obtenir en sortie doit être préalablement choisie dans la clause SELECT.
Or, ici, tu ne demandes nullement a mysql de décrypter ton mot de passe dans la clause SELECT, je me trompe ?
Posté : 12 juil. 2009, 01:30
par Fredy07
Normal, tu lui demandes de trouver l'enregistrement correspondant a la version decryptée d'une mot de passe qui n'est autre que le mot de passe décrypté.
Toute donnée que tu veux obtenir en sortie doit être préalablement choisie dans la clause SELECT.
Or, ici, tu ne demandes nullement a mysql de décrypter ton mot de passe dans la clause SELECT, je me trompe ?
Alors c'est quoi la solution de trouver le mot de passe décrypté et l'envoyer par e-mail.
Merci
Posté : 12 juil. 2009, 01:52
par Ryle
La commande "SELECT *" te retourne les valeurs des champs tels qu'ils sont stockés dans ta table et ne fait aucune opération dessus. Si tu veux que MySQL te retourne les mots de passe décryptés, il faut le lui demander explicitement, il ne peut pas le deviner
Maintenant, il ne semble pas nécessaire dans ton cas de récupérer le mot de passe. Ce qui t'intéresse c'est de vérifier si le mot de passe saisi par l'utilisateur (en clair) correspond à celui qui est en base (crypté).
Il te faut donc soit crypter le mot de passe saisie pour le comparer à celui en base (c'est la solution proposé par stopher et pour laquelle la fonction de cryptage ou une fonction de chiffrage seule est suffisante), soit décrypter celui en base pour pouvoir le comparer à celui saisi.
Dans ton essai (pass = AES_Decrypt('".$cle."','".$pass."')) tu décryptes le mot de passe saisi pour le comparer à celui crypté en base... du coup forcément, il ne droit pas y avoir beaucoup de résultat

Posté : 12 juil. 2009, 11:48
par Fredy07
Merci Ryle pour la réponse, alors ce que je veux faire en claire c'est:
1- Vérifier le mot de passe crypte dans la BD est le même saisi
2- Si l'utilisateur a perdu son mot de passe, on peut l'envoyer par e-mail afin qu'il puisse se connecter.