Cryto : encode/decodage AES
Bonjour tout le monde.
Je cherche à crypter des données coté client (en javascript) pour les utiliser par la suite coté serveur (donc les décoder avant).
Je passe par le cryptage type AES en mode ECB (pour éviter de passer par un vecteur d'initialisation)
Pour cela, coté serveur, j'utilise ceci :
Code:
1 2 3 4 5
|
$chaine = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $clef, $string, MCRYPT_MODE_ECB);
Cela me donne ceci :
SLo1D1a6ftVmDt6mWm19T1GMRugcuXei8TlZyGPbaumwiz6pLqTZA%2F9vvnKCzXoPRieTya4Kw5RVbKy85Ibh74umEGRzd44mVt1lDGzEHaN1gEkq3G8PRxGVj%2F3Vz%2BG3AEojHPZXo7rRTDTnXsf5VUIjZgGcFNMn |
Coté javascript, j'utilise cette implémentation :
http://javascript.about.com/library/blencrypt.htm
Code:
1 2 3 4 5 6
|
var plaintext = 'le_texte_a_encoder'; # le meme qu'en PHP
var key = hexToByteArray('098f6bcd4621d373cade4e832627b4f6'); # la cle, la meme qu'en PHP
var mode = 'ECB'; # la méthode d'encryptage
var ciphertext = byteArrayToString(rijndaelEncrypt(plaintext,key, mode));
document.write(encodeBase64(ciphertext)); # encodage en base64 |
Mais cela me renvoit :
p5ElrSnbn/h/PSr6EWaHlKkrMLUWXuiGh5d5WSI54TxWcjfSYlI00pmJaX2aaA76b4tCgOmW9FrBnzP+BJTmn6Xra+2P6PraTpcjuyTglDxVZgwVh/jEjQdfl8oXjaPuDaK+DherQYuNMY8KzZ1R56IwUndHz4qSP1tqHBpkrO
Donc en gros, pas la meme chose...
J'ai pas mal galéré sur le script en js (je considère que le script PHP est correct), passé ma chaine en hexa etc ... impossible d'avoir le même résultat.
SI quelqu'un a une idée, je serai vraiment preneur.
Merci