Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/06/2011, 14h10   #1
Membre régulier
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 315
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

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

Informations forums :
Inscription : janvier 2005
Messages : 315
Points : 80
Points : 80
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
vince29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 17h00   #2
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
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.
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 17h12   #3
Membre régulier
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 315
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

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

Informations forums :
Inscription : janvier 2005
Messages : 315
Points : 80
Points : 80
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?
vince29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 09h07   #4
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
On peux voir comment tu fais ?
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 09h34   #5
Membre régulier
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 315
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

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

Informations forums :
Inscription : janvier 2005
Messages : 315
Points : 80
Points : 80
Bonjour

oui bien sûre.

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

Code :
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 :
$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
vince29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 10h30   #6
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
J'imagine que tu envoies par $_GET ?
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 10h34   #7
Membre régulier
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 315
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

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

Informations forums :
Inscription : janvier 2005
Messages : 315
Points : 80
Points : 80
oui c'est bien ça.
et je récupère mon paramètre comme ceci :

Code :
1
2
 
$data = trim($filter->filter($this->_request->get(data)));
vince29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 10h51   #8
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
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 :
1
2
 
$data = $this->_request->getParam('data');
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 11h08   #9
Membre régulier
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 315
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

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

Informations forums :
Inscription : janvier 2005
Messages : 315
Points : 80
Points : 80
Pas de souci pour les questions, c'est normal

J'ai essayé de modifier, en mettant juste :
Code :
$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 :
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 :
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é
vince29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 11h19   #10
Membre régulier
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 315
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

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

Informations forums :
Inscription : janvier 2005
Messages : 315
Points : 80
Points : 80
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
vince29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 11h21   #11
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
As-tu lu la remarque sur le site PHP.net

Citation:
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 :
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.
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h38.


 
 
 
 
Partenaires

Hébergement Web