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 Java Discussion :

[Conversion] Comment transformer un byte[] en String ?


Sujet :

Langage Java

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 165
    Points : 193
    Points
    193
    Par défaut [Conversion] Comment transformer un byte[] en String ?
    Bonjour,

    sur mon programme j'ai une variable de type bytes[] ( tableau de bytes ) qui est énorme ( il fait plus de 600 élements )

    il represente un clé publique ( cryptage RSA )

    j'aimerai savoir comment faire pour le transformer en String ou en element plus court facile à mettre dans un fichier texte ( fichier de licence ) ou dans une base de registre, quelque chose de plus condensé qu'un tableau de bytes[]

    on devrait ensuite pouvoir faire la conversion inverse, c'est à dire passer d'un String à un tableau de bytes[]

    merci par avance

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Ce ne serait pas par l'intermediaire d'une surcharge encoding du constructeur de String et de la méthode String.getBytes.

    Exemples:
    http://www.ingrid.org/java/i18n/encoding/table.html
    Je peux pas testé et de plus mon java date un peu, cependant une bonne année
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 165
    Points : 193
    Points
    193
    Par défaut
    Merci beaucoup 8)

    je vais tester ça pour voir si c'est Ok

    bonne année à toi aussi

  4. #4
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 165
    Points : 193
    Points
    193
    Par défaut
    Finalement il y a un problème, car la conversion en string genere des retours chariot, donc ça fait une string en plusieurs lignes

    or moi je veux juste une string tenant sur une seule ligne,

    à la limite il faudrait voir si on ne pourrait pas representer le tableau de bytes sous forme de chaine alphanumérique, un truc en hexadécimal ?

  5. #5
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 165
    Points : 193
    Points
    193
    Par défaut
    J'ai peut-être une idée:

    je pense à fabriquer une string composé d'une concaténation des valeurs de chaque case du tableau de byte, je sépare chaque valeur de la case par un caractere "F":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int i;
        String sChaine="";
            for(i=0;i<myTAB.length-1;i++){
            	sChaine=sChaine+ myTAB[i] +"F";
            }
            System.out.println(sChaine);
    t'en penses quoi ?

  6. #6
    Membre habitué Avatar de White Rabbit
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 122
    Points : 148
    Points
    148
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class Test2 {
      public static void main(String[] args) {
         byte[] octets = new byte[] {'a', 'b', 'c'};
         String chaine = "";
     
         //si on ne met pas (char) on obtient 979899 au lie de abc
         for(int i=0; i<octets.length; i++)
           chaine = chaine + (char)octets[i];
     
         System.out.println(chaine); 
      }
    }

  7. #7
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 165
    Points : 193
    Points
    193
    Par défaut
    Non ce n'est pas bon car ça me genere toujours des retours chariot si j'essaie de convertir un tableau de bytes en string

    il faut retenir que l'idée est d'obtenir une representation en chaine du tableau de byte, et cela doit tenir sur une seule ligne ( ne pas avoir de retour chariot ou de caracteres bizarre )

    dans mon tableau de bytes il y a des valeurs négatives ( genre -127 ), donc si on caste en char ça peut afficher des trucs bizarres dont des caracteres qui passe mal à l'écran, non lisible :/

    en gros j'aimerai un truc tout simple qui permet une representation imprimable à l'écran sans caracteres bizaroide,

    une sorte de codage alphanumérique qui permettrait de retrouver sans problème le tableau de byte

  8. #8
    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
    une réprésentation hexadécimale du code binaire lié au tableau de byte en gros ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      static String byteArrayToHexString(byte[] bArray){
        StringBuffer buffer = new StringBuffer();
     
        for(byte b : bArray) {
          buffer.append(Integer.toHexString(b));
          buffer.append(" ");
        }
     
        return buffer.toString().toUpperCase();    
      }
    "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

  9. #9
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 165
    Points : 193
    Points
    193
    Par défaut
    Merci à toi c'est parfait

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

Discussions similaires

  1. Transformer des bytes en String et vis versa
    Par sebac dans le forum Langage
    Réponses: 2
    Dernier message: 16/09/2009, 14h47
  2. vc++ express 2005 comment transformé les char * en String
    Par ben_ghost dans le forum Visual C++
    Réponses: 1
    Dernier message: 20/07/2006, 06h52
  3. Comment transformer un double en String?
    Par tit_oune dans le forum C++
    Réponses: 2
    Dernier message: 27/06/2006, 11h09
  4. Comment transformer un double en String?
    Par dessinateurttuyen dans le forum Langage
    Réponses: 5
    Dernier message: 20/10/2005, 23h31
  5. [Date] Comment transformer mon String en date avec newDate?
    Par Devil666 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 10/06/2005, 16h50

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