Convertir hexa ascii [Résolu/Fermé]

ludoo78 119 Messages postés mercredi 13 décembre 2006Date d'inscription 9 septembre 2010 Dernière intervention - 18 janv. 2008 à 11:15 - Dernière réponse :  iliass
- 22 août 2013 à 15:25
Bonjour,

Je suis à la recherche d'un petit executable qui converti de l'hexadecimal vers l'ASCII, c'est à dire retrouvé un texte à partir d'une sequence de nombres hexadécimaux.

Merci beaucoup,

Ludo
Afficher la suite 

34 réponses

SebManfred 484 Messages postés mardi 28 août 2007Date d'inscription 20 mai 2011 Dernière intervention - 18 janv. 2008 à 11:21
+3
Utile
1
à mon avis, ça ira beaucoup plus vite de te faire ton petit exe en C++ que de le chercher sur le net... il suffit de convertir les nombres hexadécimaux 2 à 2 pour reconstituer les octets de ta chaine de caractères ACSII et d'enregistrer le tout dans un fichier .txt
Cette réponse vous a-t-elle aidé ?  
http://www.string-functions.com/hex-string.aspx
SebManfred 484 Messages postés mardi 28 août 2007Date d'inscription 20 mai 2011 Dernière intervention - 18 janv. 2008 à 14:47
+1
Utile
bon, ton programme, tu veux qu'il fasse quoi? (arguments, retour, comportement (options), etc...)
jee pee 21389 Messages postés mercredi 2 mai 2007Date d'inscriptionModérateurStatut 19 janvier 2018 Dernière intervention - 10 janv. 2010 à 19:53
+1
Utile
9
Bonjour,

Plutôt que de l'hexadécimal, c'est du décimal puisqu'on ne retrouve que des valeurs de 0 à 9

Si on découpe par bloc de 2 on obtient :

079, 078, 078, 069, 086, 079, 073, 084, 066, 073, 069, 078, 081, 085, 065, 086, 069, 067, 076, 069, 067, 079, 069, 085, 082, 076, 069, 083, 083, 069, 078, 084, 073, 069, 076, 069, 083, 084, 073, 078, 086, 073, 083, 073, 066, 076, 069, 080, 079, 085, 082, 076, 069, 083, 089, 069, 085, 088,

Qui correspond aux caractères ascii :

ONNEVOITBIENQUAVECLECOEURLESSENTIELESTINVISIBLEPOURLESYEUX

C'est donc bien de l'auteur du Petit Prince

cdlt
si c'est sa, mais il a tout simplement oublier les espaces ;)
jee pee 21389 Messages postés mercredi 2 mai 2007Date d'inscriptionModérateurStatut 19 janvier 2018 Dernière intervention - 19 avril 2011 à 17:25
Vers la fin de la chaîne il y a un s , caractère qui n'existe pas en hexa :-))
imessam 5 Messages postés mardi 11 octobre 2011Date d'inscription 12 octobre 2011 Dernière intervention - 11 oct. 2011 à 14:39
bonjour,
pourriez vous me décodé alors ça: 2D:7D:52:FE:46:0F:57:9E:BC:B3:CC:19:A8
merci d'avance
jee pee 21389 Messages postés mercredi 2 mai 2007Date d'inscriptionModérateurStatut 19 janvier 2018 Dernière intervention - 11 oct. 2011 à 15:34
Ce n'est pas une chaine ascii

En gros les mots hexa doivent être compris dans les zones :

31 à 39 => 1 à 9
41 à 5a => A à Z
61 à 7a => a à z

et ne devraient pas dépasser 7F

cf : http://www.table-ascii.com/
4c 65 20 6d 6f 74 20 64 65 20 70 61 73 73 65 20 65 73 74 20 3a 20 6b 69 6a 75 79 68
ludoo78 119 Messages postés mercredi 13 décembre 2006Date d'inscription 9 septembre 2010 Dernière intervention - 18 janv. 2008 à 11:23
0
Utile
le truc c'est que la programmation, c'est pas trop mon truc. Pourriez vous m'aider la deçu.

Merci
ludoo78 119 Messages postés mercredi 13 décembre 2006Date d'inscription 9 septembre 2010 Dernière intervention - 18 janv. 2008 à 12:37
0
Utile
il y a plus personne?
Quelqu'un pourrait-il me conseiller pour faire un petit programme qui me convertirait des données hexa en texte.
Please.
SebManfred 484 Messages postés mardi 28 août 2007Date d'inscription 20 mai 2011 Dernière intervention - 18 janv. 2008 à 12:49
0
Utile
tu as une plateforme de développement? (genre Visual Studio)
ludoo78 119 Messages postés mercredi 13 décembre 2006Date d'inscription 9 septembre 2010 Dernière intervention - 18 janv. 2008 à 14:33
0
Utile
oui, j'ai dev C++
Char Snipeur 9676 Messages postés vendredi 23 avril 2004Date d'inscriptionContributeurStatut 21 janvier 2018 Dernière intervention - 18 janv. 2008 à 16:01
0
Utile
un truc du genre :
#include <stdio.h>
int main(int argc, char** argv)
{
      unsigned int a,compt=0;
      char c,s[1024];
      while(1)
          {
           scanf("%x",&a);
           c=char(a);
           s[compt++]=c;
           }
      s[compt]='\0';
      printf("%s",s);
return 0;
}

?
J'ai pas testé, en particulier, le %x qui attend un entier hexadecimal non signé (ce que tu cherche).
J'utlise d'ailleur scanf plutôt que cin, à cause justement du %x précisant l'hexadecimal. Je ne sais pas si il y a l'équivalent dans iostream.
jee pee 21389 Messages postés mercredi 2 mai 2007Date d'inscriptionContributeurStatut 19 janvier 2018 Dernière intervention - 18 janv. 2008 à 17:17
0
Utile
1
salut,

en allant sur http://le.wiki.free.fr/ tu récupères le fichier convertisseur.html et tu le copies sur ta machine, cela permet de faire toutes les conversions

cordialement
s"il vous plait est ce que vous pouvez m'aider à rendre cette clé hex en clé ascii voila la clé et merci beaucoup 80b4df89ee4c61089b99b6361b28de648218615e884b95fe3d87129a3de5885e
ludoo78 119 Messages postés mercredi 13 décembre 2006Date d'inscription 9 septembre 2010 Dernière intervention - 18 janv. 2008 à 17:42
0
Utile
4
Merci pour tous.

CharSniper
Ton programme ne fonctionne pas je crois. Je vais essayer de le comprendre pour voir ce qui va pas (c'est pas une mince affaire lol)

SebManfred
Mon programme je veux qu'en entrée je lui donne une sequence (plus ou moins longue) en hexadecimal et qu'il me donne la convertion en chaine de caractere ASCII.

jee pee,
Ton convertisseur n'est pas très efficace, qu'en la séquence est trop longue, il renvoi n'importe quoi.
jee pee 21389 Messages postés mercredi 2 mai 2007Date d'inscriptionContributeurStatut 19 janvier 2018 Dernière intervention - 18 janv. 2008 à 17:51
c'est combien trop long ?

chaque caractère hexa doit être séparé par un blanc, une virgule :

Tiens un poeme que j'aime :

42, 61, 75, 64, 65, 6c, 61, 69, 72, 65, 20, 3a, 20, c0, 20, 75, 6e, 65, 20, 50, 61, 73, 73, 61, 6e, 74, 65, 0a, 0a, 0a, 20, 20, 09, 4c, 61, 20, 72, 75, 65, 20, 61, 73, 73, 6f, 75, 72, 64, 69, 73, 73, 61, 6e, 74, 65, 20, 61, 75, 74, 6f, 75, 72, 20, 64, 65, 20, 6d, 6f, 69, 20, 68, 75, 72, 6c, 61, 69, 74, 2e, 0a, 4c, 6f, 6e, 67, 75, 65, 2c, 20, 6d, 69, 6e, 63, 65, 2c, 20, 65, 6e, 20, 67, 72, 61, 6e, 64, 20, 64, 65, 75, 69, 6c, 2c, 20, 64, 6f, 75, 6c, 65, 75, 72, 20, 6d, 61, 6a, 65, 73, 74, 75, 65, 75, 73, 65, 2c, 0a, 55, 6e, 65, 20, 66, 65, 6d, 6d, 65, 20, 70, 61, 73, 73, 61, 2c, 20, 64, 27, 75, 6e, 65, 20, 6d, 61, 69, 6e, 20, 66, 61, 73, 74, 75, 65, 75, 73, 65, 0a, 53, 6f, 75, 6c, 65, 76, 61, 6e, 74, 2c, 20, 62, 61, 6c, 61, 6e, e7, 61, 6e, 74, 20, 6c, 65, 20, 66, 65, 73, 74, 6f, 6e, 20, 65, 74, 20, 6c, 27, 6f, 75, 72, 6c, 65, 74, 20, 3b, 0a, 0a, 41, 67, 69, 6c, 65, 20, 65, 74, 20, 6e, 6f, 62, 6c, 65, 2c, 20, 61, 76, 65, 63, 20, 73, 61, 20, 6a, 61, 6d, 62, 65, 20, 64, 65, 20, 73, 74, 61, 74, 75, 65, 2e, 0a, 4d, 6f, 69, 2c, 20, 6a, 65, 20, 62, 75, 76, 61, 69, 73, 2c, 20, 63, 72, 69, 73, 70, e9, 20, 63, 6f, 6d, 6d, 65, 20, 75, 6e, 20, 65, 78, 74, 72, 61, 76, 61, 67, 61, 6e, 74, 2c, 0a, 44, 61, 6e, 73, 20, 73, 6f, 6e, 20, 6f, 65, 69, 6c, 2c, 20, 63, 69, 65, 6c, 20, 6c, 69, 76, 69, 64, 65, 20, 6f, f9, 20, 67, 65, 72, 6d, 65, 20, 6c, 27, 6f, 75, 72, 61, 67, 61, 6e, 2c, 0a, 4c, 61, 20, 64, 6f, 75, 63, 65, 75, 72, 20, 71, 75, 69, 20, 66, 61, 73, 63, 69, 6e, 65, 20, 65, 74, 20, 6c, 65, 20, 70, 6c, 61, 69, 73, 69, 72, 20, 71, 75, 69, 20, 74, 75, 65, 2e, 0a, 0a, 55, 6e, 20, e9, 63, 6c, 61, 69, 72, 2e, 2e, 2e, 20, 70, 75, 69, 73, 20, 6c, 61, 20, 6e, 75, 69, 74, 20, 21, 20, 2d, 20, 46, 75, 67, 69, 74, 69, 76, 65, 20, 62, 65, 61, 75, 74, e9, 0a, 44, 6f, 6e, 74, 20, 6c, 65, 20, 72, 65, 67, 61, 72, 64, 20, 6d, 27, 61, 20, 66, 61, 69, 74, 20, 73, 6f, 75, 64, 61, 69, 6e, 65, 6d, 65, 6e, 74, 20, 72, 65, 6e, 61, ee, 74, 72, 65, 2c, 0a, 4e, 65, 20, 74, 65, 20, 76, 65, 72, 72, 61, 69, 2d, 6a, 65, 20, 70, 6c, 75, 73, 20, 71, 75, 65, 20, 64, 61, 6e, 73, 20, 6c, 27, e9, 74, 65, 72, 6e, 69, 74, e9, 20, 3f, 0a, 0a, 41, 69, 6c, 6c, 65, 75, 72, 73, 2c, 20, 62, 69, 65, 6e, 20, 6c, 6f, 69, 6e, 20, 64, 27, 69, 63, 69, 20, 21, 20, 74, 72, 6f, 70, 20, 74, 61, 72, 64, 20, 21, 20, 6a, 61, 6d, 61, 69, 73, 20, 70, 65, 75, 74, 2d, ea, 74, 72, 65, 20, 21, 0a, 43, 61, 72, 20, 6a, 27, 69, 67, 6e, 6f, 72, 65, 20, 6f, f9, 20, 74, 75, 20, 66, 75, 69, 73, 2c, 20, 74, 75, 20, 6e, 65, 20, 73, 61, 69, 73, 20, 6f, f9, 20, 6a, 65, 20, 76, 61, 69, 73, 2c, 0a, d4, 20, 74, 6f, 69, 20, 71, 75, 65, 20, 6a, 27, 65, 75, 73, 73, 65, 20, 61, 69, 6d, e9, 65, 2c, 20, f4, 20, 74, 6f, 69, 20, 71, 75, 69, 20, 6c, 65, 20, 73, 61, 76, 61, 69, 73, 20, 21, 0a, 0a, 0a, 43, 68, 61, 72, 6c, 65, 73, 20, 42, 41, 55, 44, 45, 4c, 41, 49, 52, 45, 20, 28, 31, 38, 32, 31, 2d, 31, 38, 36, 37, 29, 0a, 28, 4c, 65, 73, 20, 66, 6c, 65, 75, 72, 73, 20, 64, 75, 20, 6d, 61, 6c, 29, 0a, 20,

et qui marche en conversion, dans les 2 sens, ascii -> hexa et hexa->ascii :-)

Char Snipeur 9676 Messages postés vendredi 23 avril 2004Date d'inscriptionContributeurStatut 21 janvier 2018 Dernière intervention - 21 janv. 2008 à 08:31
Non, bien sur il ne fonctionne pas, c'était une ébauche dont tu pouvais t'inspirer. En particulier, je sais pas si tu veux utiliser les entree sorties standard ou des fichiers. En tout cas, une fois fini il fonctionne :
#include <stdio.h>
int main(int argc, char** argv)
{
      unsigned int a,compt=0,n;
      char c,s[1024];
      scanf("%d",&n);
      for(n;n>0;n--)
          {
           scanf("%x",&a);
           c=char(a);
           s[compt++]=c;
           }
      s[compt]='\0';
      printf("%s",s);
      scanf("%d",&n);
      return 0;
}
Mais c'est pareil, il faut séparer chaque caractère hexadecimal soit par une espace, soit par un retour à la ligne.
Bonjour
j'ai essayé d'entrer votre code mais la compilation bloque sur c=char(a);
J'ai essayé de voir pourquoi mais j'ai rien vu.
Est-ce-que vous pouvez m'aider?
Char Snipeur 9676 Messages postés vendredi 23 avril 2004Date d'inscriptionContributeurStatut 21 janvier 2018 Dernière intervention - 17 janv. 2011 à 08:25
quel est le message d'erreur ?
ludoo78 119 Messages postés mercredi 13 décembre 2006Date d'inscription 9 septembre 2010 Dernière intervention - 21 janv. 2008 à 11:46
0
Utile
Merci bien pour tous ça

C'est vrai que ça aurait été interessant de pouvoir convertir directement depuis un fichier hexadecimal.
Que faut-il remplacer pour cela?

Merci
Char Snipeur 9676 Messages postés vendredi 23 avril 2004Date d'inscriptionContributeurStatut 21 janvier 2018 Dernière intervention - 21 janv. 2008 à 13:03
0
Utile
pour lire à partir d'un fichier hexadecimal en ASCII (c'est à dire lisible "1A F3 ..." par un humain) il suffit soit de faire une indirection lors de l'appel au programme, soit utiliser fscanf() à la place de scanf().
ludoo78 119 Messages postés mercredi 13 décembre 2006Date d'inscription 9 septembre 2010 Dernière intervention - 21 janv. 2008 à 14:12
0
Utile
ok ok merci pour tous les mecs
j'ai réussi à avoirce que je veux grace à vous
++
0
Utile
tu as aussi powershell !

[code]
Function HexIt($a)
{return "{0:X}" -f $a}

Function IntToBaseTwo($value, [string]$bits='') {
$remainder = $value % 2
$bits = [string]$remainder + $bits
$value = ($value - $remainder) / 2
if($value -gt 0) { IntToBaseTwo $value $bits }
else { $bits }
}

Function word2int([System.String]$word)
{$word.GetEnumerator() | foreach {[int][char]$_}}
Function convertword($word)
{
word2int $word
word2int $word | foreach {hexit($_)}
word2int $word | foreach {intTobaseTwo($_)}
}


[/code]

un mot dont les caracteres sont convertis en entier , entiers en hexa et binaire ^^
0
Utile
Bonjour,

Je suis un peu bloquée par une énigme qui requiert des compétences que je n'ai pas ...

Il faudrait traduire un texte codé (je pense en hexadécimal car il semble qu'il y ait un rapport avec le Petit Prince d'Antoine de Saint Exupéry).

Si je vous donne la liste de chiffres, est-il possible que quelqu'un me le traduire en "bon français" compréhensible pour la nuche que je suis ?

Voilà l'objet de mon tourment :

7978-7869-86797384-66736978-8185-65866967-
7669-6779698582-76-698383697884736976-698384-
737886738373667669-80798582-766983-89698588.

Il parait que ça veut dire quelque chose ...

Merci aux bonnes volontés.
imessam 5 Messages postés mardi 11 octobre 2011Date d'inscription 12 octobre 2011 Dernière intervention - 12 oct. 2011 à 11:00
0
Utile
Bonjour,

j'ai pu déchiffrer le code grâce à ce site http://www.table-ascii.com, mais ça n'a rien avoir avec ce que je cherche, bizarre et insensé.

merci à vous.
lil0oux 2 Messages postés dimanche 10 mars 2013Date d'inscription 10 mars 2013 Dernière intervention - 10 mars 2013 à 00:24
0
Utile
2
Bonjour à tous,

Je cherche à traduire quelque chose :
6D 65 72 63 69 2C 20
74 75 20 6D 65 20 6D
61 6E 71 75 65 73

Je ne sais pas si c'est de l'hexadécimal ou quoi et je n'y connais rien du tout dans ce domaine, je ne sais même pas si ça veut dire quelque chose!!
Mais si quelqu'un pouvait essayer de me le traduire ce serait super gentil!! Voila merci beaucoup!!
nicocorico 808 Messages postés dimanche 19 juin 2011Date d'inscription 29 octobre 2016 Dernière intervention - 10 mars 2013 à 10:13
C'est simplement en ascii et ça donne «merci, tu me manques»
traduirer moi 1EDAA8AFFD69C781DC24AA