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 :

Decryptage chaine en TripleDES / 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 Decryptage chaine en TripleDES / WINDEV ->PHP
    Bonjour à tous,

    Voilà le problème je dois décrypter une chaîne de caractères envoyée par un web service (le cryptage est en 3DES et fait sous windev).

    On m'as transmis la clé bien évidemment mais je n'ai pas plus d'infos quant au mode de cryptage (ECB, CFB..)

    Je fais donc un appel curl pour récupérer le contenu d'une page de test qui renvoie la chaîne 'hello world' cryptée sous cette forme: @#m��2ی���D����$���

    - La chaîne cryptée varie à chaque retour curl, comme si une contrainte aléatoire avait été intégrée à la phase de cryptage

    - J'ai essayé plusieurs scripts dont celui ci-dessous qui as l'air fonctionnel mais ne décrypte rien du tout:


    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
     
    public function decrypt($data, $secret)
    {
        //Generate a key from a hash
        $key = md5(utf8_encode($secret), true);
     
        //Take first 8 bytes of $key and append them to the end of $key.
        $key .= substr($key, 0, 8);
     
        $data = base64_decode($data);
     
        $data = mcrypt_decrypt('tripledes', $key, $data, 'ecb');
     
        $block = mcrypt_get_block_size('tripledes', 'ecb');
        $len = strlen($data);
        $pad = ord($data[$len-1]);
     
        return substr($data, 0, strlen($data) - $pad);
    }
    Auriez vous quelques pistes ou une idée de la manière dont Windev procède au cryptage en tripleDES ?

    Merci d'avance

  2. #2
    Membre éclairé Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Points : 760
    Points
    760
    Par défaut
    Salut,

    et si tu crypte toi même ton texte :

    Code php : 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
    public function encrypt($data, $secret)
    {
        //Generate a key from a hash
        $key = md5(utf8_encode($secret), true);
     
        //Take first 8 bytes of $key and append them to the end of $key.
        $key .= substr($key, 0, 8);
     
        //Pad for PKCS7
        $blockSize = mcrypt_get_block_size('tripledes', 'ecb');
        $len = strlen($data);
        $pad = $blockSize - ($len % $blockSize);
        $data .= str_repeat(chr($pad), $pad);
     
        //Encrypt data
        $encData = mcrypt_encrypt('tripledes', $key, $data, 'ecb');
     
        return base64_encode($encData);
    }

    Est-ce que la phrase "hello world" sera semblable à ce que tu as ? Et change-t-elle aussi à chaque fois ?
    Si non, c'est que tu fais fausse route

    Pour info, j'ai vu ta fonction de décryptage ici : https://stackoverflow.com/questions/...tion-using-php
    Je reprends donc la même fonction de cryptage pour avoir de la cohérence.

  3. #3
    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
    Salut,
    Merci pour ta réponse

    Oui j'avais déjà essayé à l'aide de ces 2 fonctions de "comparer " les chaînes obtenues mais la chaîne obtenue grâce à la fonction encrypt prise sur stackoverflow renvoie toujours la même chaîne et n'as rien en commun avec les caractères que je récupère sur le web service.

    De la même manière il y a plusieurs outils en ligne : https://asecuritysite.com/encryption/threedes qui eux aussi renvoient des chaînes cryptées en 3DES mais qui ne varient pas..je suis un peu dubitatif

  4. #4
    Membre éclairé Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Points : 760
    Points
    760
    Par défaut
    Salut,

    je crains que si tu n'a pas la fonction de cryptage, tu ne pourra pas (ou alors très difficilement) définir une fonction de décrytage...

  5. #5
    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
    Voilà les seules infos que j'ai à propos du cryptage côté WinDev:

    crypte3DES Triple Data Encryption Standard.
    • Taille de la clé : 192 bits.
    • Taille des blocs : 64 bits.
    • Taille du vecteur d’initialisation (IV) : 64 bits.

Discussions similaires

  1. [WD17] Cryptage Windev vers PHP
    Par Mary. dans le forum WinDev
    Réponses: 4
    Dernier message: 24/08/2012, 17h24
  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