Décrypter password

Eléphanteau du PHP | 23 Messages

31 oct. 2006, 13:44

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

31 oct. 2006, 13:54

Salut,
Si tu utilises ENCODE dans la requête SQL alors tu dois également utiliser DECODE dans une requête.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 413 Messages

31 oct. 2006, 14:23

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...
--
Goeb

Eléphanteau du PHP | 23 Messages

31 oct. 2006, 14:42

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')

Eléphanteau du PHP | 23 Messages

31 oct. 2006, 14:52

c'est résolu, ms la requete ne renvoit rien

Mammouth du PHP | 592 Messages

31 oct. 2006, 14:54

salut

Code : Tout sélectionner

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

Eléphanteau du PHP | 23 Messages

31 oct. 2006, 15:05

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.

Mammouth du PHP | 592 Messages

31 oct. 2006, 15:09

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]

Eléphanteau du PHP | 23 Messages

31 oct. 2006, 15:13

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

31 oct. 2006, 15:33

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."' "; 

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 23 Messages

31 oct. 2006, 15:44

merci, j'ai déja fait également. et ca ne change rien non+.

la requete ne renvoit tjs rien.

Mammouth du PHP | 592 Messages

31 oct. 2006, 15:53

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

Eléphanteau du PHP | 23 Messages

31 oct. 2006, 16:01

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 ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

31 oct. 2006, 16:06

Quel est le format du champ du mot de passe dans la BD ?

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 592 Messages

31 oct. 2006, 16:11

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???