Base64 Encoder/Décoder en Ligne

Encodez et décodez du texte en Base64 rapidement. Outil essentiel pour les développeurs travaillant avec des APIs, images et données binaires.

Supporte UTF-8, emojis et caractères accentués

Qu'est-ce que Base64?

Base64 est un schéma d'encodage qui convertit les données binaires en texte ASCII en utilisant 64 caractères imprimables (A-Z, a-z, 0-9, +, /). Il est largement utilisé pour transmettre des données binaires via des médias qui ne supportent que le texte, comme l'email (MIME) et les URLs.

Comment fonctionne l'encodage Base64?

L'encodage Base64 fonctionne en divisant l'entrée en groupes de 3 octets (24 bits) et en convertissant chaque groupe en 4 caractères de 6 bits. Lorsque le nombre d'octets n'est pas un multiple de 3, des caractères de remplissage (=) sont ajoutés à la fin.

Exemple de conversion:

Texte original: "ABC"

Binaire: 01000001 01000010 01000011

Groupé (6 bits): 010000 010100 001001 000011

Décimal: 16 20 9 3

Base64: "QUJD"

À quoi sert Base64?

1. Incorporer des Images en HTML/CSS: Les Data URLs permettent d'inclure des images directement dans le code sans requêtes HTTP additionnelles.

<img src="data:image/png;base64,iVBORw0KGg..." />

2. Transmission de Données Binaires en JSON: Les APIs REST utilisent fréquemment Base64 pour envoyer des fichiers ou données binaires dans des payloads JSON.

3. Authentification HTTP Basic: Les identifiants sont encodés en Base64 dans l'en-tête Authorization.

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

4. Email (MIME): Les pièces jointes d'emails sont encodées en Base64 pour garantir la compatibilité avec les serveurs qui ne supportent que l'ASCII 7 bits.

5. Stockage Temporaire: Stocker des données binaires dans les cookies, localStorage ou sessionStorage.

Avantages et Inconvénients

✓ Avantages

  • Compatible avec les systèmes qui n'acceptent que le texte ASCII
  • Facile à transmettre par email, URL et JSON
  • Supporté nativement dans tous les langages
  • Sûr pour copier/coller sans perte de données

✗ Inconvénients

  • Augmente la taille de ~33% (overhead)
  • N'est pas du chiffrement (n'offre pas de sécurité)
  • Coût CPU pour encoder/décoder
  • Pas lisible par l'humain

Base64 vs Autres Schémas

SchémaCaractèresOverheadUsage Courant
Base64A-Z, a-z, 0-9, +, /~33%Email, JSON, Data URLs
Base64URLA-Z, a-z, 0-9, -, _~33%URLs, JWT tokens
Hexadécimal0-9, A-F100%Hashes, couleurs CSS
Base32A-Z, 2-7~60%TOTP, codes de secours

Cas d'usage pratiques

🖼️ Data URL pour favicon

Incorporez un favicon inline sans requête HTTP externe:

🔑 HTTP Basic Auth

Envoyer des identifiants dans des requêtes HTTP:

const credentials = btoa('utilisateur:motdepasse');
headers.Authorization = `Basic ${credentials}`;

📧 Pièce jointe d'email

Les protocoles SMTP utilisent Base64 pour les pièces jointes, garantissant que les caractères spéciaux ne corrompent pas le message pendant la transmission.

Base64 N'EST PAS du chiffrement

⚠️ Avertissement Important

Base64 est un schéma d'encodage, pas du chiffrement. N'importe qui peut décoder Base64 instantanément. N'utilisez jamais Base64 pour protéger des mots de passe, tokens ou données sensibles. Pour une vraie sécurité, utilisez des algorithmes de chiffrement comme AES, RSA ou bcrypt.

FAQ - Questions Fréquentes

1. Pourquoi Base64 augmente la taille du fichier?

Parce qu'il convertit 3 octets (24 bits) en 4 caractères de 6 bits chacun. Cela génère un overhead d'environ 33%. Un fichier de 1 Mo devient ~1,33 Mo en Base64.

2. Que signifie le "=" à la fin des chaînes Base64?

Le signe "=" est un remplissage, ajouté lorsque le nombre d'octets d'entrée n'est pas un multiple de 3. Il peut y avoir 0, 1 ou 2 caractères "=" à la fin.

3. Base64 peut-il être utilisé pour les URLs?

Base64 standard utilise "+", "/" et "=" qui sont des caractères spéciaux dans les URLs. Utilisez Base64URL (remplace + par -, / par _ et supprime le remplissage) pour des URLs sûres.

4. Comment convertir des images en Base64?

En JavaScript: utilisez l'API FileReader. Ligne de commande: base64 image.png. En Python: base64.b64encode().

5. Base64 supporte-t-il les caractères Unicode?

Oui! Notre outil utilise encodeURIComponent pour supporter UTF-8, incluant les emojis et caractères accentués.

6. Quelle est la différence entre btoa() et atob()?

btoa() = binary to ASCII (encode). atob() = ASCII to binary (décode). Ce sont des fonctions JavaScript natives du navigateur.

Outils Associés