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

Collection et Stream Java Discussion :

String of byte array to byte array


Sujet :

Collection et Stream Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 7
    Points : 7
    Points
    7
    Par défaut String of byte array to byte array
    Bonjour,

    Je travaille sur un web service, et je veux envoyer un byte array en forme de String, puis recuperer le byte array initial.

    J'explique encore, mon coté serveur a le role de crypter un message, j'ai donc un byte array.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Cipher cipher = Cipher.getInstance("RSA");
    cipher.init(cipher.ENCRYPT_MODE,clefPrivee);
    byte[] cipherText= cipher.doFinal(msgEnOctets);
    puis pour envoyer ce message crypté, je l'envoie sous forme de String car j'envoie toute une trame de données.

    J'ai donc le tableau sous forme de chaine mais rien n'a changé.

    Comment puis je récuperer mon tableau initial?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Points : 653
    Points
    653
    Par défaut
    Citation Envoyé par LadyN Voir le message
    cipherText.toString();
    Oula !!!

    Si tu veux convertir ton tableau de byte en String de façon réversible, il faut que tu utilises le constructeur de String qui attend un tableau de byte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String s = new String(bytes, charset);
    Puis pour retrouver ton tableau de byte, il faut que tu fasses attention à bien utiliser le même charset :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    byte[] tab = s.getBytes(charset);

  3. #3
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    y'a (beaucoup) mieux que la construction de strings "basiques" pour transmettre des byte array

    regarde du côté de Base64

    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par verbose Voir le message
    Si tu veux convertir ton tableau de byte en String de façon réversible, il faut que tu utilises le constructeur de String qui attend un tableau de byte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String s = new String(bytes, charset);
    Puis pour retrouver ton tableau de byte, il faut que tu fasses attention à bien utiliser le même charset :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    byte[] tab = s.getBytes(charset);
    Houlà aussi !

    Ça c'est quand tu as un texte à convertir en binaire ou vice-versa.
    Là c'est l'inverse : il y a du code binaire crypté qu'on veut embarquer dans du texte, pour un web service.

    Comme déjà dit, il vaut mieux se tourner vers un encodage en Base64.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    byte[] cipherText ..
    BASE64Encoder encoder = new BASE64Encoder();
    BASE64Decoder decoder = new BASE64Decoder();
    String cipherTextEnString =encoder.encodeBuffer(cipherText);
    byte[] cipherTextEnOctet= decoder.decodeBuffer(cipherTextEnString);

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

Discussions similaires

  1. Array dans un Array.. Dans un Array
    Par blinkman04 dans le forum Langage
    Réponses: 3
    Dernier message: 27/01/2014, 14h36
  2. String vers array of bytes.
    Par DakM dans le forum Langage
    Réponses: 2
    Dernier message: 07/11/2011, 17h38
  3. Réponses: 5
    Dernier message: 08/07/2008, 17h33
  4. Réponses: 5
    Dernier message: 18/11/2005, 22h11
  5. [Type] alternative a "array of byte"
    Par Clorish dans le forum Langage
    Réponses: 2
    Dernier message: 12/07/2005, 11h59

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