Bonjour
Je voudrais pouvoir encrypter une chaine de caracteres enAES-128 (Rijndael-128) en PHP et decrypter avec une application externe (non programmee en PHP).
J'ai donc mis en place ce code :
Cote PHP, tout est correct, j'encrypte et je peux decrypter correctement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 private function aes_encrypt($data){ if($data == ''){ return($data); } $td = mcrypt_module_open('rijndael-128', '', 'ecb', ''); $public_key = base64_decode($this->getKey()); $iv_size = mcrypt_enc_get_iv_size($td); $iv = '0000000000000000'; if (mcrypt_generic_init($td, $public_key, $iv) != -1) { // Encrypt $encrypted = mcrypt_generic($td, $data); mcrypt_generic_deinit($td); // Clean //mcrypt_generic_deinit($td); mcrypt_module_close($td); $encrypted = base64_encode($encrypted); //echo $data.'<br>'; //echo $encrypted.'<br>'; } return($encrypted); }
Mais quand j'envoie la chaine encryptee a l'application, elle ne peux decrypter.
En faisant des tests, je me suis rendu compte que si je mettais la chaine a encrypter directement dans la fonction comme cela :
ca passait, mais si cette meme chaine est fournie sous forme de parametre, ca bloque.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $data = 'La chaine a encrypter';
NB : Cote PHP, que ce soit avec une chaine hardcodee ou un parametre, je n'obtiens pas la meme chaine encryptee, mais le decryptage fonctionne...
Si quelqu'un arrive a comprendre et a une explication/solution, je suis preneur.
Merci
Partager