Comment convertir du Base64 en binaire
- Collez le Base64 dans Entrée · Base64. Les sauts de ligne, les espaces, un préfixe
data:, les-et_URL-safe et un remplissage manquant sont tous acceptés. - Chaque octet décodé apparaît sur 8 bits dans Sortie · Binaire.
- Choisissez le Séparateur sous la sortie : Espace (par défaut), Aucun,
,,,ou Nouvelle ligne. - Utilisez Copier la sortie ou Télécharger pour récupérer les bits. Enregistrer les octets enregistre plutôt les données décodées dans un fichier, avec une extension déduite du contenu.
Le sélecteur Binaire → Base64, ou la page Binaire en Base64, fait le chemin inverse.
Comment les caractères Base64 deviennent des bits
Chaque caractère Base64 représente 6 bits : sa position dans l’alphabet, de A = 0 à / = 63. Quatre caractères donnent 24 bits, que le décodeur regroupe en trois octets de 8 bits. Prenons SGkh :
| Caractère | S | G | k | h |
|---|---|---|---|---|
| Valeur | 18 | 6 | 36 | 33 |
| 6 bits | 010010 | 000110 | 100100 | 100001 |
Mis bout à bout, cela donne 010010000110100100100001. Découpé en octets :
| Octet | 01001000 | 01101001 | 00100001 |
|---|---|---|---|
| Décimal | 72 | 105 | 33 |
| Texte | H | i | ! |
SGkh correspond donc à Hi!, et la sortie binaire indique 01001000 01101001 00100001. Les frontières des caractères et celles des octets ne coïncident que tous les 24 bits : c’est pourquoi un seul caractère Base64 erroné peut abîmer deux octets voisins. L’explication pas à pas détaille le même processus côté encodeur.
Le remplissage et les bits restants
Quand les données ne font pas un multiple de 3 octets, le dernier groupe est incomplet. Hi fait 16 bits, ce qui demande trois caractères Base64 (18 bits). Les 2 bits en trop sont mis à zéro, et = complète le groupe jusqu’à quatre caractères :
| Base64 | Bits transportés | Octets obtenus |
|---|---|---|
SGkh | 24 | 01001000 01101001 00100001 |
SGk= | 18, dont 2 de bourrage | 01001000 01101001 |
SA== | 12, dont 4 de bourrage | 01001000 |
Les bits de bourrage n’apparaissent jamais dans la sortie. La raison d’être de = est expliquée sur la page consacrée au remplissage.
Quand une vue en bits est utile
- Les protocoles et les en-têtes de fichiers rangent souvent plusieurs flags oui/non dans un seul octet. En binaire, vous lisez ces champs de bits directement au lieu de convertir des chiffres hex de tête.
- Pour comparer deux valeurs, décodez-les toutes les deux et comparez-les ligne par ligne avec Séparateur réglé sur Nouvelle ligne ; un seul bit inversé saute aux yeux.
- En cours ou dans des énigmes, les octets de 8 bits placés à côté des groupes de 6 bits montrent d’où viennent les 33 % de surcoût de taille.
Au-delà de quelques dizaines d’octets, l’hexadécimal est plus lisible : Base64 en hex affiche les mêmes octets dans un quart de la place. La sortie binaire compte 8 caractères par octet plus un séparateur : un million de caractères Base64 (750 000 octets) donnent environ 6,75 millions de caractères binaires. La zone de sortie affiche les 2 premiers millions ; Copier la sortie et Télécharger donnent toujours le résultat complet.
Base64 en binaire dans le code
import base64
" ".join(f"{b:08b}" for b in base64.b64decode("SGkh"))
# '01001000 01101001 00100001'
Array.from(Buffer.from("SGkh", "base64"), b => b.toString(2).padStart(8, "0")).join(" ");
// '01001000 01101001 00100001'
Pour écrire plutôt les octets décodés dans un fichier binaire : open("out.bin", "wb").write(base64.b64decode(s)) en Python ou fs.writeFileSync("out.bin", Buffer.from(s, "base64")) en Node. Les pages Python et Node.js contiennent les exemples complets avec fichiers.
FAQ
Convertir du Base64 en binaire, est-ce la même chose que décoder du Base64 ?
Le décodage est le même ; seul l’affichage diffère. Cette page écrit les octets sous forme de 0 et de 1. Si vous voulez les octets dans un fichier, ce que « binaire » veut souvent dire, utilisez Base64 en fichier ou le bouton Enregistrer les octets de cette page.
Pourquoi 8 chiffres par octet alors que Base64 utilise 6 bits par caractère ?
La sortie montre des octets, et un octet fait 8 bits. Base64 découpe le même flux de bits en morceaux de 6 bits : 3 octets (24 bits) correspondent donc toujours à 4 caractères.
Comment obtenir les bits sans espaces ?
Réglez Séparateur sur Aucun. SGk= donne alors 0100100001101001 en une seule chaîne.
Que deviennent les bits de remplissage ?
Ils sont abandonnés. Dans SGk=, le dernier caractère porte 6 bits mais seuls 4 appartiennent aux données ; les 2 autres sont des zéros qui complètent le caractère, et le décodeur les ignore.