fonction : mcrypt et decrypt

Eléphant du PHP | 77 Messages

22 nov. 2005, 20:10

Salut tous

j'essai d'utiliser ces deux fonctions , j'encrypte une valeur que je recupere dans une autre page php que j'essai de decrypter et c'est la que cela coince.. car ca change mais reste crypter ..

donc j'ai suivi un exemple internet..le probleme cest que les exemples sont souvent sans la methode pour decrypter et la seule que j'ai trouvé et qui est souvent montré ..(15 sites c'est le meme exemple.)

donc voici mon code pour crypter la valeur N
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND); 
$key = "Bocardi";

echo "<tr>";
echo "<td><a href='contact.php?n=".(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, ($row['data']), MCRYPT_MODE_ECB,$iv))."'>test</a></td>";
echo '</tr>';

et celle pour decrypter

$text_crypt = $_GET['n'];

$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND); 
$key = "Bocardi";
$text_decrypter = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $text_crypt, MCRYPT_MODE_ECB,$iv);

Donc je suis bien coincé :x

Merci d'avance de votre aide

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 nov. 2005, 20:27

Salut, je te donne encore un lien avec un exemple mais je pensequ'il faut utiliser la meme valeur pour $iv.

/!\ 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 | 77 Messages

22 nov. 2005, 20:53

justement cette valeur $iv , j'ai essayé de la retirer ou de mettre une valeur fixe mais rien n'y fait..toujours le meme probleme

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 nov. 2005, 23:34

je sais pas trop jamais utilisé ces fonctions, peut etre en passant $iv dans l'url et récupèrer sur la 2eme page... mais je sais pas a quoi ressemble cette variable ni meme son importance... mais c'est peut etre une piste.

Sinon as tu essayé le code exemple dans mon lien ?

/!\ 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 | 77 Messages

22 nov. 2005, 23:50

oui j'ai essayé d'utiliser l'exemple mais cela revient au même

et j'ai aussi essayé de passer $iv dans l'url .

j'ai remarquer qu'il me met des % à chaque lettre accentué

du genre dans la barre adresse :

contact.php?n=Su%C3%B9%C3%B8%C5%A1R%C3%93%C3%B1%C2%B1%C2%A1%C3%89%E2%80%BA%C2%B1%1F%E2%80%A1@%C3%B4[%C3%AF%C3%BD%C3%9EQ%C3%84%C3%AE

cette fonction ne peut être utiliser que sur la meme page php il semble pour garder le meme $iv .

je vais laisser tomber et essayer de contourner le probleme..

je cloture et merci de ton aide

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 nov. 2005, 00:08

peut etre ceci :-k

/!\ 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 | 77 Messages

23 nov. 2005, 00:32

jai essayé aussi , il marche pas meme en l'utilisant , brut sans rien rajouter

Eléphant du PHP | 77 Messages

23 nov. 2005, 01:24

j'ai trouvé enfin :)

donc voici le code si quelqu'un patauge un jour :
$key = "Normandie";

contact.php?n=".base64_encode((MCRYPT_ECB(MCRYPT_3DES, $key, ($row['data']), MCRYPT_ENCRYPT)))."'>test</a></td>";

sur le php d'arrivé :

$text_crypt = $_GET['n'];

$key = "Normandie";

$test2 =MCRYPT_ECB(MCRYPT_3DES, $key, base64_decode($text_crypt),MCRYPT_DECRYPT );

$test = rtrim($test2); // sert pour retirer la petite case à droite
echo $test;

comme quoi c'est pas si simple, vu le nb de cryptage different et en passant d'un php à un autre :)

[/php]