Page 1 sur 2

Décrypter password

Posté : 31 oct. 2006, 13:44
par sophie2097
bonjour à tous,

voilà mon petit probleme: j'utilise dans mon INSERT INTO la fonction ENCODE afin de crypter le password insérer dans la BD PhpMyAdmin.

Mais je voudrais ensuite pouvoir récupérer ce mot de passe présent dans la BD(par exemple au cas où l'utilisateur aurait oublié son mot de passe).

comment puis-je faire pour décrypter ce mot de passe de la BD?

j'ai utilisé la fonction DECODE mais j'obtiens l'erreur suivante:
Fatal error: Call to undefined function: decode()

mon code
$password = DECODE(($ligne["password"]),'hello');

merci à vous

Posté : 31 oct. 2006, 13:54
par Truc
Salut,
Si tu utilises ENCODE dans la requête SQL alors tu dois également utiliser DECODE dans une requête.

Posté : 31 oct. 2006, 14:23
par goeb
en général les mots-de-passe sont encodés en 'hash', c'est à dire qu'on ne peut pas les décoder. et quand un utilisateur a perdu son mot-de-passe, au lieu de retrouver son mot-de-passe, on lui en donne un nouveau.

c'est toi qui vois...

Posté : 31 oct. 2006, 14:42
par sophie2097
voici alors ma requete mais avec une erreur

$query_password = "SELECT DECODE('password,'hello') FROM GENERALISTE WHERE email='$mail';";


erreur:You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'hello')

Posté : 31 oct. 2006, 14:52
par sophie2097
c'est résolu, ms la requete ne renvoit rien

Posté : 31 oct. 2006, 14:54
par fred9999
salut

Code : Tout sélectionner

$query_password = "SELECT DECODE('password','hello') FROM GENERALISTE WHERE email='$mail';";
ton champ hello est crypté aussi????

Posté : 31 oct. 2006, 15:05
par sophie2097
INSERT INTO GENERALISTE VALUES ENCODE('$password_g','hello');

hello est un exemple,je pourrais utiliser n'importe quelle chaine de caractere.

le hello vient de l'insert. c'est pour crypter le password. donc pour le décrypter je suppose que dois le réutiliser.

Posté : 31 oct. 2006, 15:09
par fred9999
moi j'aurai plutot vu un truc comme ça

Code : Tout sélectionner

$query_password = "SELECT DECODE('password') FROM GENERALISTE WHERE email='$mail';";
puisque que tu souhaite decode un champ de table[/php]

Posté : 31 oct. 2006, 15:13
par sophie2097
oui j'ai deja essayé sans succès.

pourtant voilà l'aide trouvé sur un site de SQL

DECODE(crypt_str,pass_str)

Déchiffre la chaîne chiffrée crypt_str en utilisant la clé pass_str. crypt_str doit être une chaîne qui a été renvoyée par la fonction ENCODE().

ENCODE(str,pass_str)

Chiffre la chaîne str en utilisant la clé pass_str. Pour déchiffrer le résultat, utilisez la fonction DECODE().



c'est pourtant ce que j'ai fait

Posté : 31 oct. 2006, 15:33
par Truc
Tu veux décoder le champ de la table il ne faut donc pas mettre d'apostrophes autour de ce champ sinon c'est considéré en tant que chaine de caractères.
$query_password = "SELECT DECODE(password,'hello') FROM GENERALISTE WHERE email='".$mail."' "; 

Posté : 31 oct. 2006, 15:44
par sophie2097
merci, j'ai déja fait également. et ca ne change rien non+.

la requete ne renvoit tjs rien.

Posté : 31 oct. 2006, 15:53
par fred9999
oui mais si je comprend bien le definition de la fonction il faut que tu lui passe la clé de déchiffrage et pas hello

Posté : 31 oct. 2006, 16:01
par sophie2097
mais ma clé de chiffrage est hello dans le INSERT INTO
donc ma clé de déchifrrage est hello aussi dans le SELECT je suppose ?

Posté : 31 oct. 2006, 16:06
par Truc
Quel est le format du champ du mot de passe dans la BD ?

L'enregistrement se fait correctement ?
Le champ est renseigné ?

Posté : 31 oct. 2006, 16:11
par fred9999
Les clés d'encodage n'ont pas un format précis???

'hello' est un format ou c'es un mot que tu as mis comme ça???