Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Convertir BYTE[] vers char * [ Windows / Autre ] (LordBob)

vendredi 12 octobre 2007 à 13:02:21 | Convertir BYTE[] vers char *

LordBob

Membre Club
Bonjour a tous,
voila en fait j'ai récupéré un algo de hash MD5, mon algo met le résultat dans un tableau de BYTE, j'aimerais récupérer ce résultat dans un char*. Mais je ne vois pas comment faire.
Pourriez-vous m'aider svp?
Merci par avance...
Bob...
"Vaut mieux se taire et passer pour un con, que de l'ouvrir et ne laisser aucun doute sur le sujet..."

vendredi 12 octobre 2007 à 15:00:45 | Re : Convertir BYTE[] vers char *

The_Guardian

Bonjour,

un byte ça veut dire un octet
un tableau de byte c'est donc un tableau d'octets
un char c'est aussi un octet (en C)

Donc tu devrais pas avoir trop de problèmes, du moment que tu arrives à convertir tes "byte" en "char".
_ et un char *, c'est un tableau d'octets aussi
A priori, pas de problèmes. Faudra faire attention par contre à ne pas considérer tes "char" comme des caractères signés
mais ça devrait pas poser de problème non plus
_ si tu as un problème (ce qui ne devrait pas être le cas), précise le langage dans lequel tu travailles et colle un bout de code

Une autruche ne se cuit pas aux petits lardons

vendredi 12 octobre 2007 à 16:01:41 | Re : Convertir BYTE[] vers char *

SAKingdom

Membre Club
Réponse acceptée !
En char * ? Tu veux dire en chaine de caractère lisible ?

Dans ce cas, tu peux prendre chaque BYTE de ton tableau et faire une conversion grâce à itoa avec un radix de 16 puis tu concatènes les résultat à ta chaine final. Tu auras ainsi une chaine lisible de ton tableau de BYTE.
Ça devrait ressembler à:

char *tab2str (BYTE *pbBytes, int iSize, char *lpDest)
{
    while(iSize > 0) {
        char tmp[10], *i = tmp;

        itoa(*pbBytes++, tmp, 16);

        while(*i) *lpDest++ = *i++;
        *lpDest++ = ' ';

        iSize--;
    }

    *lpDest = 0;

    return lpDest;
}

int main (int argc, char *argv[])
{
    BYTE tab[] = {0x50, 0x60, 0x05, 0x14};
    char tmp[32];

    tab2str(tab, 4, tmp);

    printf("%s\n", tmp);

    return 0;
}

C++ (@++)


vendredi 12 octobre 2007 à 20:50:42 | Re : Convertir BYTE[] vers char *

LordBob

Membre Club
merci beaucoup pour la réponse...
Bob...
"Vaut mieux se taire et passer pour un con, que de l'ouvrir et ne laisser aucun doute sur le sujet..."

samedi 13 octobre 2007 à 02:50:31 | Re : Convertir BYTE[] vers char *

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
Salut,
Tu peux aussi utiliser une petite fonction qui fait directement la convertion sans passer par itoa(). Voici un exemple:

char* BytesToHex(char* destination, BYTE* source, int longueur)
{
    char chiffres[]="0123456789ABCDEF";
    int i;
    for(i=0; i<longueur; i++)
    {
        destination[i*2]=chiffres[source[i] >> 4];
        destination[i*2+1]=chiffres[source[i]& 0x0F];
    }
    destination[i*2]=0;
    return destination;
}

Pour l'appeler il suffit de faire par exemple:
    BYTE tableau[]={0x01,0x0f,0xab,0x1b,0x44,0x55,0x6a,0x7b,0x8c,0x9d,0xae,0xbf,0xc0,0xd1,0xe2,0xf3};
    char buffer[34];
    BytesToHex(buffer,tableau,16);
A noter que la taille du buffer doit être,  au moins, deux fois la taille du tableau +1.




Cette discussion est classé dans : résultat, convertir, algo, byte, char


Répondre à ce message

Sujets en rapport avec ce message

printf de char en hexadécimal affiche un byte en 4 caractères ? [ par develdelphi ] Bonjour,Le printf  de mon compilateur génère des erreures d'affichages, en effet je dipose de variables unsigned char que je voudrais affichées en héx Convertir une string en char* [ par dickymoe ] Existe-t-il une fonction qui permet de convertir une string en char* ?ou alors une fonction qui compare deux string sans respecté la casse ???Merci(en convertir un int en char [ par infodaoudi ] Bonjour,  Quelqu'un a une idée pour convertir un entier (int) en caractère de manière à pouvoir le concaténer à une chaîne de caractère via la fonctio convertir const char* accentué en char [] GTK [ par Slown ] Bonjour. tout d'abord je souhaite m'escuser si je me suis trompé de Thème. Voila mon probleme: je voudrais saisir une chaine accentuées dans un gtk en Comment convertir un MediaInfo_char en char* ? SVP ! [ par supergrey ] J'ai besoin de récupérer des valeurs avec mediainfo.dll, le probleme c'est que la ou je voudrais récupérer une valeur ca me retourne un MediaInfo_char Convertir un char* en char [] [ par frayst ] Bonjour,Je voulais savoir sil etait possible de convertir un char* en char [], si oui comment dois je proceder ?char *Text = "Blablablablabla";char Te Serialisation ou Marshalling [ par cecile3147 ] Bonjour,Je doit réaliser un projet en C dans lequel je dois marshaller les arguments se situant dans le paquet avant de l'envoyer au server.Je dois co impossible de convertir const char * en char * const [ par wallie0703 ] Bonjour je n'arrive pas a compiler mon projet car il ya un problème de conversion         C843_CST(ID_, AxisName_.c_str(), "M-232.17" ); -->error C266 Convertir une valeur d'un tableau de char en int [ par impskil ] Bonjour.J'ai un tableau de char: char line[3000];Je veux reccuperer une valeur à l'interrieur du tableau et enssuite la convertir au format int ou dou


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,593 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.