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

Zend Framework PHP Discussion :

Problème base64 decode [ZF 1.9]


Sujet :

Zend Framework PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut Problème base64 decode
    Bonjour,

    Voilà, je rencontre un problème de base64 que je ne comprends pas.

    En fait, sur un site, je crypte des données, j'encode le résultat en base64 et je la transmet en paramètre vers mon site, qui lui est développé avec zend.

    mon problème, lorsque dans mon appli zend, je fais : base64_decode($param), je n'obtiens pas pas la bonne valeur.... alors que la valeur encodée est la même de chaqie côté ?

    D'avance merci.

    Vince

  2. #2
    Membre émérite

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Par défaut
    Vérifie d'abord la longueur envoyée et la longueur reçue, pour voir si c'est la même chose avant de décoder.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut
    Oui bien sûre, la valeur envoyée est bien celle reçue , dans mon cas, ma valeur est : bQi4

    il s'agit d'une valeur cryptée via 3DES, valeur cryptée que j'encode en base64.

    une idée?

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    On peux voir comment tu fais ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut
    Bonjour

    oui bien sûre.

    Voici mon code côté appli PHP sur site 1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $_SESSION['iv'] = mcrypt_create_iv($iv_taille, MCRYPT_RAND);
     
        $message_crypte = base64_encode(mcrypt_encrypt(MCRYPT_3DES, $cryptKey, $data, MCRYPT_MODE_CFB, $iv));
    Et voici ce que je fais côté serveur Zend sur mon site 2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data= base64_decode($data);
    ou évidemment, le '$data' sur le site2 est la valeur '$message_crypte' du site 1. Je m'assure avant le decode que je reçois la même valeur que celle envoyée

    Comme vous pouvez le voir, rien d'exceptionnel, ce qui fait que je ne comprend pas pourqioi ça marche pas...

    Merci de votre aide

    Vince

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    J'imagine que tu envoies par $_GET ?

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut
    oui c'est bien ça.
    et je récupère mon paramètre comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $data = trim($filter->filter($this->_request->get(data)));

  8. #8
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Je continue donc à poser mes questions


    1) As-tu essayés sans le trim et sans le filtre ?
    2) De quoi est composé le filtre ?
    3) Pourquoi Trim() n'est pas inclus dans le filtre ?
    4) As-tu essayer avec getParam ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $data = $this->_request->getParam('data');

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut
    Pas de souci pour les questions, c'est normal

    J'ai essayé de modifier, en mettant juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data = trim($this->_request->getParam(data));
    Je récupère toujours mon paramètre correctement, mais c'est le décodage de ce paramètre qui n'est pas bon :

    voici les données utilisées sur le site 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    message origine = 100
    iv = âMìì¾Upc
    message crypté = Rå
    message base64 = gVLl
    et ce qui est utilisé sur le site 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    iv = âMìì¾Upc
    message crypté = Rå
    message base64 = gVLl
    message décrypté = ÓK
    au final, je me demande si c'est le decode_base64 qui pose problème ...

    Désolé

  10. #10
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut
    autant pour moi, c'était un problème de clé de cryptage utilisée ....

    voilà ce que donne la travil dans l'urgence, désolé d'avoir pris de votre temps, et merci pour votre aide.
    Vince

  11. #11
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    As-tu lu la remarque sur le site PHP.net

    If you want to save data that is derived from a Javascript canvas.toDataURL() function, you have to convert blanks into plusses. If you do not do that, the decoded data is corrupted:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
      $encodedData = str_replace(' ','+',$encodedData);
      $decocedData = base64_decode($encodedData);
    ?>
    Du coup comme tu utilises un Trim(), je me demande si cela ne serait pas un des soucis, enlève le trim et converti les espaces en '+'.

    Juste pour voir.

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

Discussions similaires

  1. Problème avec decode et date du jour
    Par sqltrysh dans le forum SQL
    Réponses: 13
    Dernier message: 08/05/2012, 17h20
  2. Python base64 decode data | Probleme
    Par Maxou56800 dans le forum Général Python
    Réponses: 6
    Dernier message: 27/12/2011, 17h03
  3. Problème fonction DECODE
    Par zaza78 dans le forum SQL
    Réponses: 4
    Dernier message: 05/01/2009, 11h37
  4. Problème fonction decode()
    Par chti_juanito dans le forum Administration
    Réponses: 11
    Dernier message: 15/02/2006, 20h00
  5. [Base64]: decoder une chaine encoder au format base 64
    Par MaxiMax dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 11/08/2005, 10h18

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