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 :

Decyptage AES128 / MD5 Windev -> Php


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2017
    Messages : 15
    Points : 10
    Points
    10
    Par défaut Decyptage AES128 / MD5 Windev -> Php
    Bonjour à tous,

    Je dois décrypter une chaine cryptée qui m'en envoyée par un web service via Windev avec PHP .

    Voici le code Windev :

    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
    PROCÉDURE PROC_HELLOWORLD()
     
    HELLOWORLD est une chaîne = "Hello World"
     
     
    CANALPLUS est un Buffer=HELLOWORLD
     
     
    Mdp est une chaîne ="password"
     
     
    bufCle est un Buffer = HashChaîne(HA_MD5_128,Mdp)
    bufCrypte est un Buffer = CrypteStandard(CANALPLUS, bufCle, crypteAES128)
     
     
    RENVOYER bufCrypte
    la chaine obtenue est de la forme : �F-zcU=��e�aϴ;����҉Ѭ�f�Բ et est aléatoire (Utilisation d'un IV qui génére des cyptages aléatoires), il y a quelque chose a faire au niveau de l'encodage, c'est ce que j'essaye de faire avec un utf8_encode dans mon code PHP.

    J'ai trouvé une base de code PHP que j'essaie d'adapter mais sans résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);
    $size = mcrypt_get_iv_size('MD5', MCRYPT_MODE_CBC);
    function decrypt($key, $data,$iv) {
     
     
      if(16 !== strlen($key)) $key = hash('MD5', $key, true);
      if(16 !== strlen($iv)) $iv = hash('MD5', $iv, true);
      $data = utf8_encode($data);
      $data = mcrypt_decrypt('tripledes', $key, $data, MCRYPT_MODE_CBC, $iv);
      $padding = ord($data[strlen($data) - 1]);
      return substr($data, 0, -$padding);
    }
    Auriez vous des pistes de reflexion ? Merci d'avance

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Peux-tu donner un exemple de chaîne en clair et ensuite sa version chiffrée? Essaie de copier le résultat dans un bloc code pour résoudre les problèmes d'affichage de l'encodage qu'on peut voir sur ton message.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 30
    Points : 39
    Points
    39
    Par défaut
    Tu donnes ici trop peu d'informations pour que l'on puisse te guider.

    Ta procédure est clairement incomplète et de fait différente de ton algorithme PHP qui va jusqu'à faire appel à un algorithme de triple DES lorsque tu parles d'AES au dessus.

    Concrètement, pour faire simple, avant de parler algorithme de déchiffrement, il faut que tu saches ce dont tu as besoin pour pouvoir déchiffrer les données qui te parviennent, à savoir :

    • Le vecteur d'initialisation, s'il y en a un, qui, normalement, provient de l'expéditeur et est en clair dans le flux à déchiffrer (en général présent avant le chiffré, donc dans les premiers caractères)
    • L'algorithme employé ainsi que le mode de chiffrement (ton algorithme sort du CBC de nul part par rapport à ta procédure) (https://fr.wikipedia.org/wiki/Mode_d...cryptographie))
    • La clé de chiffrement
    • Les données chiffrées (oui car là tu sembles ne pas savoir que l'IV est dedans aussi, du coup tu ne sais pas réellement où sont les données)

    Une fois que tu as ça, tu as juste à faire appel à la fonction de déchiffrement en passant les différents paramètres et affaire réglée.

    Concernant ta chaîne, c'est normal qu'elle soit illisible, elle est chiffrée, donc les caractères n'ont fondamentalement aucun sens puisque le but d'un algorithme de chiffrement est justement de générer quelque chose qui ressemble à de l'aléatoire (or, les caractères imprimables sont loin de représenter les 256 possibilités d'un char).

    Tu as un exemple plus ou moins complet dans la documentation : http://php.net/manual/fr/function.mcrypt-encrypt.php

    D'ailleurs pour ceux qui sont à jour sur PHP, quelles sont les fonctions à utiliser pour le chiffrement en PHP7 ? Voyant que celle-ci est obsolète j'ai cherché -quelques minutes-, mais je n'ai rien trouvé.

Discussions similaires

  1. MD5 différent de PHP
    Par Belegkarnil dans le forum Sécurité
    Réponses: 3
    Dernier message: 02/08/2011, 13h05
  2. [WD11] Migration Windev vers Php
    Par snipes dans le forum WinDev
    Réponses: 2
    Dernier message: 17/03/2010, 17h43
  3. Réponses: 0
    Dernier message: 23/02/2010, 15h08
  4. Réponses: 0
    Dernier message: 04/02/2009, 10h23
  5. Peut on utiliser des Webservices WinDEV avec PHP ?
    Par budiste dans le forum WebDev
    Réponses: 8
    Dernier message: 30/03/2006, 11h56

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