Calculateur de surcoût d'encodage Base64
Données
| Taille binaire | 1 MB |
|---|
Calculateur de surcoût d'encodage Base64
Saisissez une taille de données binaires pour connaître la taille de la sortie encodée en Base64 et le surplus d'espace que cet encodage entraîne.
Données
Données binaires en entrée
Résultats
Saisissez une valeur pour afficher les résultats.
Sortie encodée
Répartition des tailles
Le surcoût de l'encodage Base64
Base64 est un schéma d'encodage binaire vers texte qui représente des données binaires arbitraires à l'aide de 64 caractères ASCII imprimables. C'est la méthode standard pour incorporer du contenu binaire dans des canaux ne supportant que le texte — les pièces jointes de courriels, les URI de données en HTML, les certificats PEM et les charges utiles d'API JSON y ont tous recours. L'encodage est sans perte et réversible, mais il augmente la taille des données d'environ un tiers.
Fonctionnement de l'encodage Base64
Base64 lit les données binaires en groupes de 3 octets (24 bits) et associe chaque groupe à quatre caractères, chacun portant 6 bits :
Chacun des 64 caractères représente une valeur de 0 à 63, choisi parmi A–Z, a–z, 0–9, + et /. La sortie ne contient aucun caractère de contrôle, aucun octet nul ni octet supérieur à 127 — ce qui la rend sûre pour tout transport compatible ASCII.
La formule de taille
Chaque groupe de 3 octets en entrée donnant 4 octets en sortie, la taille encodée est :
Le plafond (ceiling) gère les entrées dont la longueur n'est pas un multiple de 3 en complétant le dernier groupe par un ou deux caractères =.
Le surcoût en proportion de la taille originale est :
Pour des entrées dont la taille est un multiple exact de 3 octets, ce surcoût est exactement .
Exemple de calcul
Un fichier binaire de 1 Mo (1 000 000 octets) :
Conséquences pratiques
Courriel et MIME. Les pièces jointes sont encodées en Base64 dans le corps du message, ce qui explique pourquoi un fichier PDF de 3 Mo en pièce jointe augmente la taille du courriel à environ 4 Mo.
URI de données. L'intégration d'une image PNG de 200 Ko sous forme d'URI de données dans un fichier HTML ou CSS produit environ 267 Ko de texte, ce qui alourdit la page. Pour de petites icônes, cela évite une requête HTTP supplémentaire ; pour des images volumineuses, c'est généralement une perte nette.
API JSON. Les blobs binaires (images, extraits audio, signatures cryptographiques) sont souvent encodés en Base64 avant d'être intégrés dans des chaînes JSON, JSON ne disposant pas de type binaire natif. Les consommateurs de l'API doivent prévoir ce surcoût lors du dimensionnement des charges utiles.
Base64 URL-safe. Certains systèmes remplacent + par - et / par _ pour produire une sortie utilisable dans les segments de chemin d'URL et les paramètres de requête sans encodage par pourcentage. Le calcul de la taille est identique.
Calculateur de taux de compression permet d'évaluer si la compression avant l'encodage peut partiellement compenser le surcoût — les données compressées s'encodent souvent plus efficacement par octet.
Convertisseur de base numérique est utile pour travailler avec les représentations hexadécimales ou binaires que Base64 encode en définitive.
Questions fréquentes (FAQ)
Pourquoi Base64 ajoute-t-il environ 33 % de surcoût ?
Base64 encode chaque groupe de 3 octets de données binaires en 4 caractères ASCII imprimables. Trois octets contiennent 24 bits d'information ; quatre caractères Base64 contiennent également 24 bits (6 bits chacun), mais chaque caractère occupe un octet complet sous forme textuelle.
Ainsi, 3 octets deviennent 4 octets — une augmentation d'exactement un tiers, soit environ 33,3 %. Si la longueur de l'entrée n'est pas un multiple de 3, des caractères de rembourrage (=) sont ajoutés pour compléter le dernier groupe de 4 caractères, ce qui peut faire passer le surcoût légèrement au-dessus de 33 %.
Quand et pourquoi l'encodage Base64 est-il utilisé ?
Base64 convertit des données binaires en un sous-ensemble sûr de caractères ASCII imprimables afin qu'elles puissent transiter par des canaux ne supportant que le texte, sans corruption. Parmi les usages courants : l'intégration d'images ou de polices directement dans du HTML et du CSS (URI de données), l'envoi de pièces jointes binaires dans les courriels (MIME), l'encodage de clés et de certificats cryptographiques (format PEM), et la transmission de charges utiles binaires dans des API JSON.
Le surcoût de 33 % est le coût accepté pour garantir un transport compatible avec tout système ASCII.
Comment Base64 se compare-t-il à l'encodage hexadécimal ?
L'encodage hexadécimal (base 16) représente chaque octet par deux caractères hexadécimaux, ce qui double systématiquement la taille des données — soit 100 % de surcoût. Base64 utilise 64 caractères, chacun portant 6 bits au lieu de 4, ce qui lui permet d'encoder les mêmes données en seulement 4/3 fois plus de caractères au lieu de 2×.
Base64 est le choix standard lorsque la taille de sortie est importante ; l'hexadécimal est préféré lorsque la lisibilité ou le débogage prime, car chaque paire de chiffres hex correspond directement et clairement à un octet.
À quoi servent les caractères = à la fin d'une sortie Base64 ?
Base64 traite les données d'entrée par groupes de 3 octets. Lorsque le dernier groupe ne contient qu'un seul octet, deux caractères = sont ajoutés ; lorsqu'il en contient deux, un seul = est ajouté. Cela garantit que la longueur de la sortie est toujours un multiple de 4 caractères, ce qui simplifie le décodage.
Le rembourrage ne contient aucune information — certains systèmes l'omettent (le Base64 URL-safe, par exemple) et le reconstituent à partir de la longueur de la sortie lors du décodage.