logo
GeekFormat

Encodage Base64

Texte d'entrée
0 caractères

Outil gratuit d'encodage et de décodage Base64 en ligne. Prend en charge les jeux de caractères UTF-8/ASCII/ISO-8859-1, avec trois variantes : Standard, URL-Safe et MIME. Affiche le taux de gonflement du volume en temps réel, et les sauts de ligne MIME sont conformes à la norme RFC 2045.

Recommandations connexes

Cas d'utilisation

  • Débogage JWT : décodez les segments en-tête et payload du JWT (format Base64URL) pour voir le contenu des revendications du Token
  • Basic Auth : encodez username:password comme identifiants d'authentification HTTP Basic
  • Développement OAuth : générez code_verifier ou vérifiez code_challenge dans les scénarios PKCE
  • Débogage d'API : encodez des données JSON ou décodez le contenu des champs Base64 renvoyés par l'API
  • Incrustation d'images Data URI : convertissez de petites icônes au format data:image/...;base64,... pour les intégrer dans CSS/HTML
  • Encodage de pièces jointes : encodez les pièces jointes binaires au format MIME Base64

Fonctionnalités

  • Basculement Encode/Decode en un clic : basculez librement entre les modes d'encodage et de décodage, la sortie devient directement entrée pour prendre en charge le traitement cyclique
  • Prise en charge de trois jeux de caractères : UTF-8 (chinois/japonais/emoji), ASCII, ISO-8859-1, couverture professionnelle pour de multiples scénarios
  • Sortie en trois variantes : Standard (standard), URL-Safe (sécurisé pour JWT/OAuth/PKCE), MIME (norme RFC 2045 avec sauts de 76 caractères)
  • Statistiques de volume en temps réel : affiche le nombre de caractères d'entrée/sortie et le taux de gonflement en temps réel (Base64 augmente le volume d'environ 33 %)
  • Messages d'erreur conviviaux : lorsque les caractères sont hors plage, affiche des informations d'erreur spécifiques au lieu d'une simple erreur
  • Séparateur glissable : sur PC, ajustez le rapport des zones d'édition gauche et droite pour vous concentrer sur la tâche actuelle
  • Onglets indépendants pour mobile : les utilisateurs de téléphone/tablette basculent indépendamment entre la zone d'entrée et de sortie pour une expérience fluide

Comment utiliser

  1. Sélectionnez le mode : cliquez sur Encode (encoder) ou Decode (décoder) pour changer la direction de traitement
  2. Sélectionnez la variante : Standard (standard), URL-Safe (JWT/OAuth), MIME (format courrier avec sauts de 76 caractères)
  3. Saisissez le contenu : collez le texte ou la chaîne Base64, il sera traité automatiquement en temps réel
  4. Consultez les statistiques : en bas s'affichent le nombre de caractères et le taux de gonflement du volume (l'encodage augmente le volume d'environ 33 %)
  5. Copiez le résultat : copiez en un clic la chaîne Base64 ou le texte décodé

FAQ

L'encodage Base64 est-il la même chose que le chiffrement ?

Non. Base64 ne fait que convertir du texte en une autre forme de représentation réversible ; n'importe qui peut le décoder pour retrouver le texte original. S'il s'agit de données sensibles (mots de passe, tokens), utilisez un véritable schéma de chiffrement comme AES. Base64 ne convient que pour la conversion de format de données, facilitant la transmission de données binaires via des systèmes textuels.

Outil de chiffrement AES

De combien le volume augmente-t-il après l'encodage Base64 ?

L'encodage Base64 augmente le volume des données originales d'environ 33 %. Cela est dû au fait que chaque 3 octets (24 bits) sont encodés en 4 caractères Base64. Par exemple, un texte de 100 octets fera environ 133 octets après encodage. Le bas de l'outil affiche le taux de gonflement en temps réel pour vous aider à évaluer la taille des données. Exemple : `Hello` → `SGVsbG8=` (volume +33 %).

Outil de statistiques Base64

Quelle est la différence entre les trois variantes : Standard, URL-Safe et MIME ?

Standard est le Base64 standard qui utilise les caractères A-Z, a-z, 0-9, +, /. URL-Safe remplace +/ par -_, ce qui le rend adapté aux paramètres URL et aux tokens JWT. MIME insère des sauts de ligne toutes les 76 caractères, conformément à la norme de transmission de courrier RFC 2045, adapté aux pièces jointes et au texte multiligne.

URL-Safe Base64MIME Base64

Comment décoder l'en-tête ou le payload d'un JWT ?

JWT utilise l'encodage Base64URL (variante URL-Safe). Après avoir sélectionné le mode URL-Safe, collez simplement le premier segment (en-tête) ou le deuxième segment (payload) du JWT pour le décoder. Notez que le troisième segment du JWT est la signature et ne doit pas être décodé ni vérifié ici.

Outil JWT

Qu'est-ce que le Padding (remplissage) de Base64 ?

La longueur du résultat de l'encodage Base64 doit être un multiple de 4. Lorsque la longueur d'entrée n'est pas un multiple de 3, on remplit avec le caractère =. La variante URL-Safe n'utilise pas de padding. L'outil gère automatiquement le padding et supprime également automatiquement les caractères = lors du décodage.

Outil de Padding Base64

Pourquoi btoa et atob en JavaScript ne prennent-ils pas en charge le chinois ?

btoa et atob sont des API natives du navigateur qui opèrent sur le jeu de caractères Latin-1 (ISO-8859-1), où chaque caractère occupe 1 octet. Les caractères chinois occupent 3 octets en UTF-8, donc les passer directement provoquera une erreur. La solution est d'utiliser d'abord encodeURIComponent pour convertir le chinois au format %xx de séquence d'octets UTF-8, puis d'utiliser unescape pour le convertir en chaîne Latin-1, et enfin d'utiliser btoa pour encoder.

Qu'est-ce que le Data URI Scheme ? Comment intégrer des images avec Base64 ?

Data URI est un format URI qui permet d'intégrer des données directement dans une URL, avec la syntaxe : `data:[<mediatype>][;base64],<data>`. Par exemple : `data:image/png;base64,iVBORw0KGgo...`. Il est souvent utilisé pour intégrer de petites icônes, des images d'arrière-plan CSS, etc., réduisant le nombre de requêtes HTTP. Mais Base64 augmente le volume de 33 %, il ne convient donc que pour les petits fichiers ; les fichiers volumineux doivent utiliser des URL normales.

Outil Data URIBase64 vers image

Qu'est-ce que l'encodage Base64 ?

Base64 est un schéma d'encodage binaire-texte basé sur 64 caractères ASCII imprimables, défini pour la première fois par la RFC 2045 (norme MIME). Base64 convertit chaque 3 octets (24 bits) en 4 caractères Base64 (A-Z, a-z, 0-9, +, /), permettant aux données binaires d'être transmises en toute sécurité via des systèmes ne prenant en charge que le texte, comme les en-têtes HTTP, les charges utiles JSON, les documents XML ou les paramètres de requête URL.

**Base64 n'est pas du chiffrement**, il ne fournit qu'une conversion de format de données, n'importe qui peut facilement le décoder. Si vous devez protéger des données sensibles, utilisez un véritable schéma de chiffrement comme AES. Les utilisations typiques de Base64 incluent : HTTP Basic Authentication (`Authorization: Basic dXNlcjpwYXNz`), les segments en-tête et payload des tokens JWT (format Base64URL), Data URI (`data:image/png;base64,...`), l'encodage MIME des pièces jointes, etc.

**URL-Safe Base64** (RFC 4648 §5) remplace les +/ du Base64 standard par -_ et omet généralement le padding =. Cela permet au résultat encodé d'apparaître en toute sécurité dans les URL, les chemins de fichiers ou les champs JSON. Les tokens JWT, le code_verifier de OAuth PKCE et AWS Signature V4 utilisent tous l'encodage URL-Safe Base64.

**Le retour à la ligne MIME** est une norme RFC 2045 qui spécifie que chaque ligne ne doit pas dépasser 76 caractères. Lorsque le contenu Base64 est utilisé dans des courriers électroniques ou certains scénarios nécessitant un affichage avec sauts de ligne, la variante MIME insère automatiquement des caractères de saut de ligne (`\n`) toutes les 76 caractères. C'est le format standard pour la transmission des pièces jointes aux courriers électroniques.

L'outil utilise l'**API native btoa/atob** du navigateur, associée à une logique de traitement sécurisée pour UTF-8, garantissant que les caractères multioctets comme le chinois, le japonais et les emoji sont correctement encodés. Tous les calculs sont effectués localement, les données ne sont envoyées à aucun serveur. Ouvrez le panneau réseau des outils de développement du navigateur pour vérifier qu'il n'y a aucune requête externe pendant tout le processus.

术语表

RFC 4648
Norme officielle d'encodage Base16/Base32/Base64 publiée par l'IETF. Définit deux alphabets : Base64 standard et Base64 URL-Safe, ainsi que des règles pour le padding, les sauts de ligne, la gestion des caractères non alphabétiques, etc. C'est la norme de facto actuelle pour l'encodage Base64, remplaçant l'ancienne RFC 3548.Outil URL-Safe Base64Outil de Padding Base64
RFC 2045 (MIME)
Norme Multipurpose Internet Mail Extensions (MIME). C'est la première à avoir adopté Base64 comme méthode d'encodage de transmission de contenu de courrier. Elle stipule que l'encodage Base64 ne doit pas dépasser 76 caractères par ligne et est séparé par CRLF, connue sous le nom de variante MIME Base64.Outil MIME Base64
Base64URL (URL-Safe Base64)
Variante sécurisée pour URL définie dans la RFC 4648 §5. Remplace le + du Base64 standard par - et le / par _, et omet généralement le caractère de padding =. Elle est largement utilisée dans des scénarios comme les tokens JWT, OAuth PKCE, les paramètres URL et les noms de fichier.Outil URL-Safe Base64Outil JWT
MIME Base64
Variante Base64 conforme à la norme RFC 2045, insérant un caractère de saut de ligne (CRLF) toutes les 76 caractères. Elle est principalement utilisée pour la transmission des pièces jointes aux courriers électroniques, car le protocole SMTP ancien avait des limites sur la longueur d'une seule ligne.Outil MIME Base64
Padding (remplissage)
La longueur du résultat de l'encodage Base64 doit être un multiple de 4. Lorsque le nombre d'octets d'entrée n'est pas un multiple de 3, la fin est remplie avec le caractère =. Le Base64 standard utilise le padding, Base64URL l'omet généralement.Outil de Padding Base64
Alphabet Base64
L'ensemble de 64 caractères utilisés dans l'encodage Base64. L'alphabet Base64 standard est : A-Z (26), a-z (26), 0-9 (10), +, /, total 64 caractères, plus le caractère de remplissage =.
btoa / atob
API natives du navigateur pour l'encodage/décodage Base64. btoa (binary to ASCII) est utilisé pour encoder, atob (ASCII to binary) pour décoder. Notez que ces API ne prennent en charge que le jeu de caractères Latin-1. Pour traiter le chinois, vous devez les combiner avec un transcodage UTF-8.
Data URI Scheme
Un format URI qui permet d'intégrer de petits fichiers directement dans une URL, au format data:[<mediatype>][;base64],<data>. Il est souvent utilisé pour intégrer de petites icônes et des images d'arrière-plan CSS afin de réduire les requêtes HTTP.Outil Data URIBase64 vers image
HTTP Basic Authentication
Une méthode d'authentification dans le protocole HTTP. Le nom d'utilisateur et le mot de passe sont concaténés avec deux-points, encodés en Base64 et transmis dans l'en-tête de requête Authorization. Le format est : Authorization: Basic <base64(username:password)>.Constructeur d'en-têtes Auth
Taux de gonflement Base64
La proportion dans laquelle le volume de données augmente après l'encodage Base64. Chaque 3 octets (24 bits) sont encodés en 4 caractères Base64, donc le volume augmente d'environ 33 % (4/3 ≈ 1,333). Avec le padding, le taux de gonflement est légèrement plus élevé.

Comparaison des trois variantes de Base64

CaractéristiqueStandardURL-SafeMIME
Caractères spéciaux+ /- _+ /
Padding(=)UtiliséGénéralement omisUtilisé
Sauts de ligneAucunAucunSaut toutes les 76 caractères
NormeRFC 4648 §4RFC 4648 §5RFC 2045
Cas typiquesData URI, encodage généralJWT, paramètres URL, noms de fichierPièces jointes, transmission SMTP

Tableau comparatif des encodages de la série Base

EncodageNb de caractèresCaractéristiques du jeu de caractèresGonflement du volumeUtilisation typique
Base16 (Hex)160-9, A-F100%Débogage, affichage de hachages
Base3232A-Z, 2-7(majuscules sans confusion)60%DNS, clés TOTP, codes QR
Base5858Exclut les caractères confondables 0/O/I/l38%Adresses Bitcoin, cryptomonnaies
Base6262A-Z, a-z, 0-934%Raccourcisseurs d'URL, encodage d'IDs
Base6464A-Z, a-z, 0-9, +, /33%Data URI, MIME, JWT(variante URL-Safe)

Code Examples

Encodage Base64 en JavaScript (prise en charge du chinois UTF-8)

// 编码(支持 UTF-8 中文)
function b64Encode(str) {
  return btoa(unescape(encodeURIComponent(str)));
}

// 解码(支持 UTF-8 中文)
function b64Decode(str) {
  return decodeURIComponent(escape(atob(str)));
}

// URL-Safe 编码(用于 JWT / OAuth)
function b64UrlEncode(str) {
  return btoa(unescape(encodeURIComponent(str)))
    .replace(/\+/g, '-')
    .replace(/\//g, '_')
    .replace(/=+$/, '');
}

console.log(b64Encode('Hello 世界')); // SGVsbG8g5LiW55WM
console.log(b64Decode('SGVsbG8g5LiW55WM')); // Hello 世界

Encodage Base64 en Python

import base64

# Standard 编码(UTF-8)
encoded = base64.b64encode('Hello 世界'.encode('utf-8'))
print(encoded.decode())  # SGVsbG8g5LiW55WM

# Standard 解码
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)  # Hello 世界

# URL-Safe 编码(用于 JWT / OAuth)
url_safe = base64.urlsafe_b64encode('Hello 世界'.encode('utf-8'))
print(url_safe.decode())  # SGVsbG8g5LiW55WM(无 padding 需手动去除)

# 去除 padding(JWT 标准做法)
url_safe_no_pad = url_safe.decode().rstrip('=')
print(url_safe_no_pad)

Encodage Base64 en Java

import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Base64Example {
    public static void main(String[] args) {
        String text = "Hello 世界";

        // Standard 编码
        String encoded = Base64.getEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(encoded); // SGVsbG8g5LiW55WM

        // Standard 解码
        String decoded = new String(
            Base64.getDecoder().decode(encoded), StandardCharsets.UTF_8);
        System.out.println(decoded); // Hello 世界

        // URL-Safe 编码(用于 JWT / URL)
        String urlSafe = Base64.getUrlEncoder().withoutPadding()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(urlSafe);

        // MIME 编码(76字符换行)
        String mime = Base64.getMimeEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
    }
}

Authoritative References