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

Algorithmes et structures de données Discussion :

base64 entre différents langages


Sujet :

Algorithmes et structures de données

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 92
    Points
    92
    Par défaut base64 entre différents langages
    Bonjour,

    J'ignore si c'est réellement le bon endroit mais je ne sais pas dans quelle catégorie posée ma question ...

    J'ai une application écrite dans un langage A et une seconde application écrite dans un langage B. Je dois transmettre via le réseau un binaire sous forme "textuel" de la première application vers la seconde.

    Pour cela, j'encode à l'émission le binaire en base64 via une API du langage A et je le décode à l'arrivée via une API du langage B.

    Le binaire obtenu n'est pas le même que le binaire initial.
    Ma question est : peut-on avoir des algos différents pour encoder/décoder en base64 ?
    Où cela veut-il dire qu'une des deux APIs (sinon les deux) est foireuse ?

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 949
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 949
    Points : 5 665
    Points
    5 665
    Par défaut
    Mai,

    Au moins une des 2 API est foireuse, OU il y a eu des erreurs de transmission.

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 220
    Points : 28 201
    Points
    28 201
    Par défaut
    Normalement l'algo doit être le même des 2 cotés.

    Tu as peut-être une API foireuse.

    Ou tu as peut-être un problème d'encodage (Unicode, UTF, ...) du fichier qui n'est pas reconnu ou mal exploité par l'API qui décode

  4. #4
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    La base 64 est clairement définie par la RFC 2045 (p. 24 & 25). Une des deux API est donc nécessairement en défaut, ou comme l'a soulevé droggo, la transmission a peut être échoué.
    Quant au soucis d'encodage, je n'y crois pas trop ...

  5. #5
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Je dis peut-être une ânerie mais ce ne pourrait-il pas être un problème d'endianisme ?

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 92
    Points
    92
    Par défaut
    Merci pour vos réponses

    Je suis en train de recoder rapidement une petite API de test dans un des deux langages (l'autre étant PHP, je me permet de présupposer de sa fiabilité : "base64_decode").
    La première API a toujours été utilisée (à ma connaissance) dans des applications "intra-langage" ce qui pourrait expliquer que personne ne s'en est encore aperçu.

    Un problème d'endianisme ? Je n'y avais pas pensé. J'étudierais cette option si le problème persiste.

  7. #7
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Citation Envoyé par Trap D Voir le message
    Je dis peut-être une ânerie mais ce ne pourrait-il pas être un problème d'endianisme ?
    Ce qui revient à dire qu'une des deux API au moins est foireuse :
    Citation Envoyé par RFC 2045, p24
    When encoding a bit stream via the base64 encoding, the bit stream
    must be presumed to be ordered with the most-significant-bit first.
    That is, the first bit in the stream will be the high-order bit in
    the first 8bit byte, and the eighth bit will be the low-order bit in
    the first 8bit byte, and so on.
    Mais c'est bien entendu envisageable.

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

Discussions similaires

  1. Cryptage AES différent entre deux langages
    Par Snarky dans le forum C
    Réponses: 3
    Dernier message: 21/11/2012, 13h49
  2. Comment réaliser un benchmark entre différents langages ?
    Par thomas-python dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 11/04/2008, 09h53
  3. [DOM] Problème entre différentes versions de java
    Par scorpiwolf dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 17/03/2005, 11h40
  4. Benchmark entre les langages
    Par El blérot dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 27/12/2002, 01h22
  5. Simulation de transmission de paquet entre différent réseaux
    Par MelloW dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 19h51

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