IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Chiffrement avec MCrypt en AES-128


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de messier79
    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Par défaut Chiffrement avec MCrypt en AES-128
    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 :
    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);
    		}
    Cote PHP, tout est correct, j'encrypte et je peux decrypter correctement.
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $data = 'La chaine a encrypter';
    ca passait, mais si cette meme chaine est fournie sous forme de parametre, ca bloque.

    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

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Qu'est ce que ça veut dire "ca bloque" ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé Avatar de messier79
    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Par défaut
    Quand on essaie de decrypter, le programme crashe. Il ne peut pas decrypter.
    Mais, comme je le disais, si on met la chaine a decrypter en dur dans la fonction, ca passe. On arrive a decrypter.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Quel programme et avec quelle erreur ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé Avatar de messier79
    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Par défaut
    Nous utilisons un programme developpe en ObjectiveC (Apple). AES est implemente dans le systeme lui-meme.
    Le code erreur retourne est sybillin (-4XXX).
    Personnellement, je ne pense pas que le probleme vienne de la. Je pense qu'il y a qqc au niveau de PHP.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Est-ce que ton code PHP fonctionne en dehors de ce système ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé Avatar de messier79
    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Par défaut
    Oui, j'arrive a encrypter/decrypter en PHP, mais l'appli externe ne peut lire correctement que quand la chaine a encrypter est harcodee dans la fonction ci-dessus.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    c'est donc dans la facon dont le paramètre est passé qu'il y a un problème.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre confirmé Avatar de messier79
    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Par défaut
    Il semblerait, mais je ne comprends pas pourquoi...
    Si j'affiche le contenu du parametre dans la fonction, puis que j'essaie d'utiliser la chaine affichee directement dans une variable dans la fonction, ca marche.

  10. #10
    Membre confirmé Avatar de messier79
    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Par défaut
    Bon, j'ai laisse tombe mcrypt pour utiliser openssl et ca semble fonctionner.
    Juste pour info, la fonction est maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    		function encrypt($data, $key){
    			$encrypted = openssl_encrypt($data, $this->cypher, $key);
     
    			return($encrypted);
    		}
    Merci quand meme

  11. #11
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    fais gaffe avec openssl_encrypt, y'a un paramètre qui n'est pas documenter ($iv) et qui est obligatoire sur la version 5.3.3

  12. #12
    Membre confirmé Avatar de messier79
    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Par défaut
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de chiffrement avec AES : argument (apparemment) null
    Par Leelith dans le forum Framework .NET
    Réponses: 12
    Dernier message: 27/04/2013, 15h41
  2. Cryptage avec mcrypt
    Par ErOBaKa dans le forum Langage
    Réponses: 3
    Dernier message: 11/02/2009, 11h13
  3. Chiffrement avec une clé définie
    Par AsH.fr dans le forum Langage
    Réponses: 3
    Dernier message: 31/10/2007, 09h27
  4. [MCRYPT] cryptage/décryptage avec mcrypt
    Par Zobbiwan dans le forum Langage
    Réponses: 7
    Dernier message: 10/08/2007, 09h52
  5. AES 128 bits
    Par bibi-C-Moi dans le forum VHDL
    Réponses: 3
    Dernier message: 31/07/2007, 08h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo