Connectez-vous via MCP →

Entrez le calcul

Formule

Publicité

Résultats

Texte décodé
Hello
Octets décodés 5
Caractères en entrée (hors espaces) 8
Caractères de remplissage 1

Qu'est-ce qu'un décodeur Base64 ?

Le Base64 est un système d'encodage qui représente des données binaires à l'aide de 64 caractères ASCII imprimables (A–Z, a–z, 0–9, ainsi que + et /). On l'utilise couramment pour intégrer des images directement dans du HTML, transmettre des données au format JSON ou dans des URL, et encoder les pièces jointes des e-mails. Ce décodeur effectue l'opération inverse : il transforme une chaîne Base64 en le texte d'origine qu'elle représentait.

Comment l'utiliser

Collez ou saisissez votre chaîne Base64 dans le champ de saisie, puis validez. L'outil supprime les espaces, décode les caractères et affiche le texte obtenu, accompagné du nombre d'octets décodés, du nombre de caractères en entrée et du nombre de caractères de remplissage (« = ») détectés. Si votre saisie contient des caractères qui ne font pas partie de l'alphabet Base64, un message « invalide » s'affichera.

La formule expliquée

Chaque caractère Base64 encode 6 bits de données. Quatre caractères Base64 portent donc \(4 \times 6 = 24\) bits, qui se regroupent parfaitement en trois octets de 8 bits. Lorsque la longueur des données d'origine n'est pas un multiple de 3, un ou deux caractères de remplissage « = » sont ajoutés afin que la longueur de la chaîne encodée soit toujours un multiple de 4. Au décodage, ce remplissage est retiré et les bits excédentaires sont écartés.

$$\text{Bytes} = \left\lfloor \frac{6 \times \text{Base64 chars (no padding)}}{8} \right\rfloor$$$$\begin{gathered} \text{Bytes} = \left\lfloor \frac{6N}{8} \right\rfloor \\[1.5em] \text{where}\quad \left\{ \begin{aligned} N &= \text{valid chars of } \text{Base64 Input} \\ &\quad \text{(whitespace and } = \text{ removed)} \\ \text{char} &\to 6\text{ bits},\; 8\text{ bits} \to 1\text{ byte} \end{aligned} \right. \end{gathered}$$
Quatre caractères Base64 de 6 bits chacun regroupés en trois octets de 8 bits
Quatre caractères Base64 portent 24 bits, regroupés en trois octets décodés.

Exemple concret

Prenons la chaîne Base64 SGk=. Les caractères correspondent aux valeurs \(S=18\), \(G=6\), \(k=36\), et « = » est un caractère de remplissage. En binaire : \(010010\ 000110\ 100100 \to 24\) bits, mais le remplissage final signifie que seuls 2 octets sont valides : \(01001000\ (72 = \text{« H »})\) et \(01101001\ (105 = \text{« i »})\). Le résultat est Hi.

Pipeline montrant une chaîne Base64 convertie via des bits en texte brut
Le décodeur reconvertit une chaîne Base64 en texte brut d'origine.

Référence de l'alphabet Base64

Le Base64 standard (RFC 4648) fait correspondre chaque valeur 6 bits (0–63) à l'un des 64 caractères ASCII imprimables. Un décodeur lit chaque caractère, recherche son index 6 bits dans ce tableau, concatène les bits et les regroupe en octets 8 bits. Le tableau ci-dessous énumère l'alphabet complet et l'index assigné à chaque caractère.

Index Caractère Index Caractère Index Caractère Index Caractère
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /

Le 65e symbole, = (égal), n'est pas un caractère de données. C'est le marqueur de remplissage utilisé à la fin d'une chaîne codée pour que la longueur totale soit toujours un multiple de 4 caractères. Un = signifie que le groupe final de 4 caractères code 2 octets; deux == signifie qu'il code 1 octet. Un décodeur rejette le remplissage et les bits zéro supplémentaires qu'il implique.

Autres exemples de décodage

Chaque caractère Base64 contribue 6 bits. Quatre caractères (24 bits) se décodent exactement en 3 octets; les groupes partiels utilisent le remplissage pour que le décodeur sache combien d'octets conserver. Le nombre d'octets suit \(\text{Octets} = \left\lfloor \frac{6 \times n}{8} \right\rfloor\), où \(n\) est le nombre de caractères réels (non-remplissage).

Exemple 1 – Pas de remplissage : « TWFu » → « Man »

  1. Index : T=19, W=22, F=5, u=46.
  2. Groupes 6 bits : 010011 010110 000101 101110.
  3. Regroupement en octets : 01001101 01100001 01101110 = 77, 97, 110.
  4. ASCII 77, 97, 110 = M, a, n. Avec \(n=4\) : \(\lfloor 24/8 \rfloor = 3\) octets — Man.

Exemple 2 – Un remplissage « = » : « SGVsbG8= » → « Hello »

  1. Abandon du remplissage : 7 caractères réels S,G,V,s,b,G,8.
  2. Index : S=18, G=6, V=21, s=44, b=27, G=6, 8=60.
  3. Bits : 010010 000110 010101 101100 011011 000110 111100 (les 2 bits finaux du groupe de remplissage sont des zéros de remplissage et sont rejetés).
  4. Octets : 01001000 01100101 01101100 01101100 01101111 = 72, 101, 108, 108, 111 = H, e, l, l, o.
  5. Avec \(n=7\) : \(\lfloor 42/8 \rfloor = 5\) octets — Hello.

Exemple 3 – Deux remplissages « == » : « aGk=»... et « TQ== » → « M »

  1. Abandon du remplissage : 2 caractères réels T, Q.
  2. Index : T=19, Q=16.
  3. Bits : 010011 010000; conserver seulement les 8 premiers bits, les 4 restants sont des zéros de remplissage.
  4. Octet : 01001101 = 77 = M.
  5. Avec \(n=2\) : \(\lfloor 12/8 \rfloor = 1\) octet — M.

Pour aller dans l'autre direction et produire ces chaînes à partir de texte, utilisez l'Encodeur Base64.

Termes clés

Alphabet Base64
L'ensemble fixe de 64 caractères imprimables (A–Z, a–z, 0–9, + et /) utilisés pour représenter les données binaires sous forme de texte. Chaque caractère représente une valeur 6 bits de 0 à 63.
Remplissage (« = »)
Le signe égal ajouté à la fin d'une chaîne codée pour que sa longueur soit un multiple de 4 caractères. Il n'a pas de données; un « = » marque un groupe final de 2 octets et « == » marque un groupe final de 1 octet.
Sextet (6 bits)
Un groupe de 6 bits – l'unité qu'un seul caractère Base64 code. Quatre sextets (24 bits) s'alignent exactement avec trois octets.
Octet / octet (8 bits)
Une unité 8 bits, la taille standard d'un octet de données décodées. Le décodage Base64 regroupe les sextets en octets, que le convertisseur Binaire en Texte peut aussi illustrer bit par bit.
Suppression des espaces blancs
Suppression des espaces, tabulations et sauts de ligne avant décodage. De nombreux systèmes insèrent des sauts de ligne dans les Base64 longs (par exemple, certificats PEM, MIME électronique); un décodeur robuste ignore cet espace blanc plutôt que de le traiter comme des données.
Base64 sûr pour les URL
Une variante (RFC 4648 §5) qui remplace + par - et / par _ pour que la chaîne soit sûre dans les URL et les noms de fichiers. Le remplissage est souvent omis également. Reconvertissez ces caractères en + et / avant d'utiliser un décodeur standard; pour l'URL elle-même, voir le Calculateur Code/Décode d'URL.

FAQ

Mes données sont-elles envoyées quelque part ? La logique de décodage s'exécute côté serveur pour afficher le résultat, mais aucune saisie n'est conservée. Évitez toutefois de coller des informations sensibles.

Pourquoi le nombre d'octets n'est-il pas divisible par 4 ? Le nombre d'octets correspond aux octets de sortie décodés, et non aux caractères d'entrée. Chaque groupe de 4 caractères en entrée produit jusqu'à 3 octets en sortie.

Que signifie le remplissage (padding) ? Un seul « = » indique que le dernier groupe a produit 2 octets ; deux « = » signifient qu'il en a produit 1. L'absence de remplissage indique que la longueur des données était déjà un multiple de 3.

Dernière mise à jour: