Encryptage AES JS et décryptage PHP

ViPHP
AB
ViPHP | 5818 Messages

10 juil. 2009, 00:47

Bonjour,

J'ai trouvé en JS http://www.jasoncartwright.net/?p=124 qui semble fonctionner pour l'encodage côté client.

Pour décoder en php je cherche encore... enfin j'avais trouvé http://www.phpclasses.org/browse/package/4238.html et la classe AES.class.php fonctionne pour décoder le code encrypté en JS mais est limitée à 15 caractères.
Dans cette même page, pour plus de caractères il y a la classe AESCipher.class.php mais elle me renvoie une notice d'erreur et ne retourne pas la bonne chaine encryptée en JS.

J'ai essayé également mcrypt mais je ne trouve pas la bonne syntaxe...

Par exemple avec une clé $cle = md5('toto'); la phrase 'Alice has this cat and an other cat, Cathy has this cat and an other cat' , codée en js me renvoie:
dec1792ae838d071ddf6d0fc57826f9978b9f3fc160727ea489b0c4efe7ce659522e5408794d168cebd8468261122ab67c65417fa0b1db112edfdf954acc1fda8b3554fa746148a69d751ba1b482b19b

et je cherche donc a retrouver ma phrase initiale en décodant ce code avec php

Quelqu'un aurait une idée ?

ViPHP
ViPHP | 4674 Messages

10 juil. 2009, 13:08

Hey :),

Est-ce tu connais le protocole de cryptage d'AES ? Si oui, tu peux te faire toi-même ta propre classe. Ce n'est pas compliqué, c'est juste qu'il faut avoir du temps ...
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
AB
ViPHP | 5818 Messages

10 juil. 2009, 14:16

Oui enfin le cryptage c'est tout un univers. Comme tu dis ça prendrait un certain temps...

Pas envie de me plonger la dedans juste pour décrypter de l'AES en php alors qu'il doit bien y avoir des classes toutes faites (et fonctionnelles) pour cela.

Sans compter que les fonctions mycrypt de php devraient certainement pouvoir le faire, mais je ne suis pas arrivé à les faire fonctionner dans mon exemple.

Si quelqu'un avait déjà fait ça, ça m'aiderait de savoir comment car pour l'instant je sèche :(

ViPHP
ViPHP | 5924 Messages

11 juil. 2009, 17:00

Euh, justement j'ai l'impression que non, mcrypt ne supporte pas AES…
Je te suggère :
http://fr3.php.net/manual/fr/function.m ... rithms.php

ViPHP
AB
ViPHP | 5818 Messages

11 juil. 2009, 17:14

Euh, justement j'ai l'impression que non, mcrypt ne supporte pas AES…
Je te suggère :
http://fr3.php.net/manual/fr/function.m ... rithms.php
Ben le tableau généré par cette fonction retourne bien entre autre rijndael-128, rijndael-192 et rijndael-256, cela ne fait pas référence à l'AES ?

ViPHP
ViPHP | 5924 Messages

11 juil. 2009, 19:01

Bon je ferme ma gueule :D

Non, plus sérieusement, commence déjà par tester en ligne de commande avec mcrypt.

ViPHP
ViPHP | 4674 Messages

11 juil. 2009, 20:55

C'est con, l'AES est tombé à l'examen de sécurité cette année et j'ai déjà tout oublié :-(.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 991 Messages

12 juil. 2009, 01:04

Peut être une piste :
function cryptage ($texte)
	{
		$key_size = mcrypt_module_get_algo_key_size("tripledes");
		$iv_size = mcrypt_get_iv_size("tripledes" ,"nofb");
		$iv = "ydjskcgs";
		// choix d'une clé secrète de cryptage/décryptage et mise à longueur
		$cle = "Bol0$43V3R"; 
		$cle = substr($cle, 0, $key_size);
		// Phrase à crypter et cryptage
		$crypte = mcrypt_encrypt("tripledes", $cle, $texte, "nofb", $iv);
		$crypte_base = base64_encode($crypte);
	return $crypte_base;
	}
function decryptage($crypte_base)
	{
		$key_size = mcrypt_module_get_algo_key_size("tripledes");
		$iv_size = mcrypt_get_iv_size("tripledes" ,"nofb");
		$iv = "ydjskcgs";
		$cle = "Bol0$43V3R"; 
		$cle = substr($cle, 0, $key_size);
		$crypteq = base64_decode($crypte_base);
		$deCrypte = mcrypt_decrypt("tripledes", $cle, $crypteq, "nofb", $iv);
	return $deCrypte;
	}
Okay c'est sans doute pas parfait mais bon ^^
Bye hawk
DevOps, Symfony4, Hoa

ViPHP
AB
ViPHP | 5818 Messages

12 juil. 2009, 04:15

Peut être une piste :
function cryptage ($texte)
	{
		$key_size = mcrypt_module_get_algo_key_size("tripledes");
		$iv_size = mcrypt_get_iv_size("tripledes" ,"nofb");
		$iv = "ydjskcgs";
		// choix d'une clé secrète de cryptage/décryptage et mise à longueur
		$cle = "Bol0$43V3R"; 
		$cle = substr($cle, 0, $key_size);
		// Phrase à crypter et cryptage
		$crypte = mcrypt_encrypt("tripledes", $cle, $texte, "nofb", $iv);
		$crypte_base = base64_encode($crypte);
	return $crypte_base;
	}
function decryptage($crypte_base)
	{
		$key_size = mcrypt_module_get_algo_key_size("tripledes");
		$iv_size = mcrypt_get_iv_size("tripledes" ,"nofb");
		$iv = "ydjskcgs";
		$cle = "Bol0$43V3R"; 
		$cle = substr($cle, 0, $key_size);
		$crypteq = base64_decode($crypte_base);
		$deCrypte = mcrypt_decrypt("tripledes", $cle, $crypteq, "nofb", $iv);
	return $deCrypte;
	}
Okay c'est sans doute pas parfait mais bon ^^
Bye hawk
Le pb c'est que je cherche pas la bonne syntaxe pour "tripledes" mais pour "AES"

Enfin bon si j'y arrive pas - le manuel sur mcrypt n'est pas un modèle du genre concernant les exemples d'applications et c'est pour cette raison que je poste ces messages et que je cherchais en option des classes équivalentes - j'avais prévu de me rabattre sur "tripledes"...

Mais pour la sécurité (il s'agit de transmettre des mots de passe), je préfèrerais la technologie la plus récente :wink: