Conversion Base 64 / Binaire / Texte / Hexadécimal

google plus share facebook share




Conversions vers Base 64 / Hexadécimal / Texte / Binaire :

Conversion binaire :


Quand nous apprenons a compter, nous apprenons la base 10, mais les ordinateurs eux comptent en base 2 (le binaire). Les transistors qui équipent nos machines ne gèrent que deux état, activé ou désactivé, qui correspondent à un courant électrique. Le 1 correspond donc à un état activé, c'est-à-dire à un courant non nul, tandis que le 0 correspond à un courant nul.
Pour convertir d'un texte à une représentation binaire, il faut tout d'abord convertir les lettres en leur représentation décimale. En effet, ce que nous voyons sur le clavier n'a pas d'existence pour l'ordinateur. Chaque touche correspond ainsi à un nombre en base décimale. Par exemple la lettre "a" est codée 97 par votre ordinateur. Si on prend le mot "bonjour", il nous faudrait donc d'abord le transformer en décimal, ce qui donnerait selon les tables ASCII :
98, 111, 110, 106, 111, 117, 114
Une fois cette conversion effectuée, nous allons faire sur chaque nombre une conversion en binaire. Pour cela nous prenons le nombre et nous lui appliquons une suite de division par 2. Pour chaque division nous prenons le reste (grâce à l'opération modulo) qui sera composante de la représentation binaire. Ensuite nous réappliquons cette division par deux, Jusqu'à atteindre 0. Les restes des divisions sont donc la représentation binaire, que nous devrons inverser pour partir de 0. Par exemple pour la lettre "a", donc 97 :

97 % 2 = 1
48 % 2 = 0
24 % 2 = 0
12 % 2 = 0
6   % 2 = 0
3   % 2 = 1
1   % 2 = 1

Ici on voit que la représentation binaire de la lettre "a" est 1100001 (nous inversons). Vous remarquez qu'ici nous n'utilisons que 7 bits pour représenter "97". En effet le nombre 97 n'est pas assez grand pour devoir utiliser le dernier bit. Pour vérifier ça, dites vous que chaque bit d'un octet possède une valeur intrinsèque. En commencant par la gauche, le premier bit vaut 128, le second 64, puis 32, 16, 8, 4, 2, 1. Dans notre représentation de la lettre "a", on voit que les bits 64, 32 et 1 sont activés. Soit 64 + 32 + 1 = 97. Sur cette page, nous appliquons cette technique très simple pour convertir les entrées texte en sorties binaires. Pour convertir de l'Hexadcimal vers le binaire, nous convertissons d'abord l'Hexadécimal en Décimal, puis le Décimal en Binaire.

Conversion hexadécimal :


La représentation hexadécimale (littéralement base 16) est une notation très pratique en informatique car elle est plus compacte que le décimal pour stocker les nombres (par exemple 2 000 000 en décimal est noté 1E8480 en hexadécimal). De plus un chiffre hexadécimal correspond exactement a 4 bits, ce qui permet de représenter un octet par 2 chiffres hexadécimaux. Cela facilite les calculs.
La conversion hexadécimal / binaire s'appuie sur un principe extrêmement simple. Il suffit de séparer l'octet en 2 parties de 4 bits, puis d'attribuer à chaque groupe de 4 bits sa valeur hexadécimale (comme je l'ai dit, les chiffres hexadécimaux correspondent à 4 bits). Par exemple notre lettre "a" :

Binaire :       1100 | 0001
Hexadécimal :  C     1

Ici on prend "0110" qui est égal à 6 en décimal, donc 6 en hexadécimal, et "0001" qui correspond à 1 en hexadécimal. Cela nous donne donc : "61".

Conversion Base 64 :


Comme le dit son nom, le Base 64 est une façon de voir les données en ... base 64. Plutôt que de compter de 1 à 10, ou à 16, nous comptons de 1 à 64 avec un alphabet à 64 caractères. Un 65ème caractère permet de terminer les séquences Base 64, c'est le signe "=". L'alphabet Base 64 comprend les lettres minuscules, majuscules, les chiffres, ainsi que les signes "+" et "/", soit effectivement 64 caractères différents. Le base 64 utilise une représentation binaire à 6 bits, ce qui permet bien d'avoir 64 états différents.

Quand vous soumettez une phrase à hasher en base 64 sur notre site, elle va d'abord être séparée en "morceaux" de 24 bit (soit 3 octets). Une fois ces morceaux crées, on va attribuer tous les 6 bits une valeur base 64. Par exemple pour le mot "md5" :

ASCII         |       m       |        d        |         5       |
Binaire     |011011 01|0110 0100|00 110101|
Base 64    |     b     |     W      |    Q      |      1     |

La correspondance au mot "md5" en base est donc "bWQ1".

Maintenant, comment faire quand il ne reste pas exactement des multiples de 6 bits lorsque l'on a crée les morceaux de 24 bits ? Et bien nous complétons les bits manquants avec des bits "0". Par exemple pour "sha1", on encrypte bien les troispremières lettres "sha", il reste ensuite un octet, qui n'est pas multiple de 6. Nous allons donc lui ajouter 4 "0" bits (8 + 4 = 6*2 = 12 bits). Ensuite nous lui ajouterons deux signes "=" pour rajouter les deux caractères manquants pour atteindre les 24 bits.

Cela signifie que vous pouvez savoir en regardant une chaîne base 64 si le dernier morceau contenait 1, 2 ou 3 octets. En effet, si il restait 3 octets, c'est bien multiple de 6 donc pas besoin de rajouter des "=" à la fin. Si il n'en reste qu'un, comme dit précédement vous devrez rajouter deux signes "=". S'il en reste deux, vous devrez rajouter un signe "=".

Vous trouverez dans la liste une option "Base 64 vers Hexadécimal". Cela sert à convertir des entrées en base 64 en hexadécimal, et donc à retrouver certains hashs qui sont encodés en base 64 plutôt qu'en ASCII comme on le fait traditionnellement. Cela sera utile pour retrouver la valeur riginale du hash et le rendre lisible pour notre moteur de recherche. Si vous avez un hash sous la forme base 64, convertissez-le ici puis essayez de rentrer le résultat dans notre base de données.


Mentions légales | Donate | 7,247,032 cracked hashes since 11/2015