Encodeur/Décodeur Base64
Encodez et décodez rapidement des chaînes Base64, prenant en charge la conversion de texte et de fichiers
Qu'est-ce que Base64 ?
Base64 est un schéma d'encodage qui représente les données binaires en utilisant 64 caractères ASCII imprimables. Ces caractères incluent les lettres majuscules et minuscules, les chiffres et quelques symboles spéciaux. Base64 est largement utilisé dans les scénarios où les données binaires doivent être transmises via des canaux de texte uniquement, tels que les pièces jointes d'e-mails et les paramètres d'URL. Le schéma d'encodage Base64 a été initialement défini dans RFC 4648 et la spécification MIME (RFC 2045).
Principe de l'algorithme d'encodage Base64 :
Le processus d'encodage Base64 peut être divisé en étapes suivantes :
- Diviser les données d'entrée en groupes de 3 octets chacun
- Réorganiser ces 3 octets (24 bits) en 4 groupes de 6 bits chacun
- Mapper chaque valeur de 6 bits (plage 0-63) comme un index vers le jeu de caractères Base64
- Si le dernier groupe a moins de 3 octets, remplir avec des bits 0 et ajouter le nombre correspondant de signes égal (=) comme rembourrage à la fin du résultat
Jeu de caractères Base64 : A-Z, a-z, 0-9, +, /
Caractère de rembourrage : =
Exemple de conversion :
Code ASCII pour le texte "Man" : 77 97 110
Représentation binaire : 01001101 01100001 01101110
Regroupé en 6 bits : 010011 010110 000101 101110
Valeurs décimales : 19 22 5 46
Résultat Base64 : T W F u
Implémentation JavaScript simplifiée :
// Base64 encoding implementation example (simplified)
function base64Encode(str) {
// Base64 character set
const base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
let result = '';
let i = 0;
// Process every 3 characters as a group
while (i < str.length) {
const char1 = str.charCodeAt(i++);
const char2 = i < str.length ? str.charCodeAt(i++) : 0;
const char3 = i < str.length ? str.charCodeAt(i++) : 0;
// Convert 3 8-bit bytes into 4 6-bit indices
const triplet = (char1 << 16) + (char2 << 8) + char3;
// Extract 4 6-bit values from the triplet
const index1 = (triplet >> 18) & 0x3F;
const index2 = (triplet >> 12) & 0x3F;
const index3 = (triplet >> 6) & 0x3F;
const index4 = triplet & 0x3F;
// Add padding based on the original data length
if (i - 3 > str.length) {
result += base64chars[index1] + base64chars[index2] + '==';
} else if (i - 2 > str.length) {
result += base64chars[index1] + base64chars[index2] + base64chars[index3] + '=';
} else {
result += base64chars[index1] + base64chars[index2] + base64chars[index3] + base64chars[index4];
}
}
return result;
}
Utilisations communes :
- Encodage des pièces jointes d'e-mails (standard MIME)
- Transmission sécurisée de données dans les URLs (en utilisant la variante Base64url, où '+' et '/' sont remplacés par '-' et '_')
- Intégration d'images binaires dans HTML ou CSS (schéma data URI)
- Stockage de données simples comme une seule chaîne (comme les composants de jeton JWT)
- Inclusion de données binaires dans XML et JSON (évitant les problèmes d'échappement de caractères spéciaux)
Fonctionnalités Avancées
Support du Format Hexadécimal
Notre outil prend en charge l'entrée et la sortie au format hexadécimal, utiles pour les développeurs travaillant avec des données binaires dans le code de programme.
- Entrée : Accepte le format hexadécimal comme 0x11,0x22,0x33 ou simple 112233
- Sortie : Convertir le Base64 décodé en format hexadécimal pour l'intégration de code
Support des Jeux de Caractères
Différents jeux de caractères encodent le texte différemment en octets. Notre outil prend en charge plusieurs jeux de caractères pour gérer divers encodages de texte :
- UTF-8: Encodage universel supportant tous les caractères Unicode (par défaut)
- ASCII: Encodage 7 bits supportant les caractères anglais de base (0-127)
- Latin-1 (ISO-8859-1): Encodage 8 bits supportant les caractères d'Europe occidentale (ISO-8859-1)
- UTF-16: Encodage 16 bits couramment utilisé par Windows et Java (Little Endian)
Notes Importantes :
- Les données encodées en Base64 sont généralement environ 33% plus importantes que les données originales (car 3 octets deviennent 4 caractères)
- Base64 n'est pas un algorithme de chiffrement, juste une méthode d'encodage, et ne fournit aucune sécurité
- L'encodage Base64 de gros fichiers peut consommer une mémoire et un temps de traitement considérables
- Les variantes Base64 sûres pour URL utilisent des jeux de caractères différents pour éviter les problèmes d'encodage d'URL
- Le Base64 standard peut inclure des sauts de ligne pour limiter la longueur des lignes, ce qui nécessite un traitement supplémentaire dans certaines applications
Comparaison de Base64 avec d'autres Encodages :
| Type d'Encodage | Caractéristiques | Utilisations Principales |
|---|---|---|
| Base64 | Utilise 64 caractères ASCII pour représenter les données binaires | Pièces jointes d'e-mails, transmission de données binaires dans le texte |
| Encodage URL | Convertit les caractères spéciaux au format %XX | Passage de paramètres URL, soumission de formulaires |
| Encodage Hexadécimal | Chaque octet est représenté par deux caractères hexadécimaux | Représentation de valeur de hachage, visualisation de données binaires |
Pour plus d'informations officielles sur Base64, veuillez vous référer aux ressources suivantes : RFC 4648 (Standard Base64) | Wikipedia : Base64 | RFC 2045 (Spécification MIME)
Outils Connexes
Encodeur/Décodeur URL
Encodez et décodez les URL pour assurer la conformité et la facilité d'utilisation
Convertisseur Image vers Base64
Convertir des images en encodage Base64, prend en charge PNG, JPG, GIF, SVG, WebP, générer Data URI et arrière-plans CSS
Encodeur/Décodeur HTML
Convertir les caractères spéciaux en entités HTML avec formats nommés, décimaux et hexadécimaux pour prévenir les attaques XSS