

Vos données restent 100 % privées -- Base64 est entièrement encodé et décodé directement sur votre appareil.
Base64 est une façon de représenter des données binaires sous forme de texte brut en utilisant 64 caractères ASCII : A–Z, a–z, 0–9, plus + et /. Il permet à des données binaires comme les images, les clés et les pièces jointes d'e-mail de voyager en toute sécurité à travers des systèmes conçus pour le texte. Il s'agit d'encodage, pas de chiffrement.
Base64 utilise un alphabet fixe de 64 caractères. Chaque valeur de 0 à 63 correspond exactement à l'un d'eux, c'est ainsi que 3 octets quelconques de données binaires deviennent 4 caractères lisibles :
| Valeurs | Caractères | |
|---|---|---|
| 0–25 | A–Z | 26 lettres majuscules |
| 26–51 | a–z | 26 lettres minuscules |
| 52–61 | 0–9 | 10 chiffres |
| 62–63 | + / | 2 symboles |
Le signe "=" est la seule exception. Il s'agit d'un rembourrage, pas l'une des 64 valeurs, et il ne fait qu'arrondir le dernier bloc.
Vous l'avez presque certainement déjà vu. Base64 apparaît partout où des données binaires doivent circuler à l'intérieur du texte :
Cette astuce d'URI de données ressemble à ceci. La longue chaîne est l'image entière :
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />Les premiers protocoles réseau étaient conçus pour le texte, pas pour les octets bruts. ASCII utilisait 7 bits et 128 caractères, ce qui convenait pour l'anglais mais pas pour les données binaires. Certains systèmes altéraient les caractères de contrôle ou réécrivaient les fins de ligne (LF en CR + LF), corrompant silencieusement les images et l'audio en transit.
Base64 contourne tout cela en n'émettant que des caractères sur lesquels tous les systèmes s'accordent déjà. Base16 et Base32 font le même travail avec des alphabets plus petits, mais Base64 compresse davantage de données par caractère tout en restant sûr. C'est pourquoi il a gagné.
Tout le schéma repose sur une seule idée répétée : prendre 3 octets (24 bits), les redécouper en quatre groupes de 6 bits, et rechercher chaque groupe dans l'alphabet. Voici le mot "Logto", encodé à la main.
Étape 1. Convertir chaque caractère en binaire 8 bits :
| Caractère | Code ASCII | Binaire |
|---|---|---|
| L | 76 | 01001100 |
| o | 111 | 01101111 |
| g | 103 | 01100111 |
| t | 116 | 01110100 |
| o | 111 | 01101111 |
Étape 2. Prendre les trois premiers octets, "Log", et redécouper ces mêmes 24 bits en quatre groupes de 6 bits :
Étape 3. Lire chaque groupe de 6 bits comme un nombre, puis rechercher ce nombre dans l'alphabet :
| Groupe de 6 bits | Valeur | Caractère Base64 |
|---|---|---|
| 010011 | 19 | T |
| 000110 | 6 | G |
| 111101 | 61 | 9 |
| 100111 | 39 | n |
"Logto" fait 5 octets, pas un multiple de 3. Les deux derniers octets, "to", laissent un découpage 6 + 6 + 4. Compléter ces 4 derniers bits avec des zéros pour remplir un groupe de 6 bits, puis ajouter un "=" pour compléter le bloc de 4 caractères :
Assembler les blocs :
"Logto" → TG9ndG8=Chaque langage l'intègre nativement. En Node.js :
const text = 'Logto';
const base64 = Buffer.from(text).toString('base64');
console.log(base64); // TG9ndG8=Trois règles découlent de ce processus, qui méritent d'