Base64 : que devient un fichier de 3 000 octets ?

Un fichier de 3 000 octets encodé en Base64 occupe 4 000 caractères : le tiers de plus.

Taille d'origine
3 000 octets
Caractères Base64
4 000 (dont 0 de remplissage « = »)
Sauts de ligne ajoutés
aucun
Taille après encodage
4 000 octets
Surcoût
+ 33,3 %
Variante sans remplissage (URL)
4 000 caractères

Le cas en détail

3 000 est un multiple de 3 : il n'y a donc pas de remplissage. Chaque groupe de 3 octets devient 4 caractères, d'où 1 000 groupes et 4 000 caractères. Le surcoût de 33,3 % est le prix à payer pour n'utiliser que des caractères imprimables.

À retenir : Si l'image à intégrer pèse plus de quelques Ko, la requête économisée ne compense souvent pas le surplus de poids.

L'exemple chiffré

Valeurs utilisées dans ce cas (des exemples, pas des mesures) :

  • Taille d'origine : 3000
  • Unité : octets
  • Sauts de ligne : Aucun (une seule ligne)
Taille d'origine
3 000 octets
Caractères Base64
4 000 (dont 0 de remplissage « = »)
Sauts de ligne ajoutés
aucun
Taille après encodage
4 000 octets
Surcoût
+ 33,3 %
Variante sans remplissage (URL)
4 000 caractères

Modifiez les champs ci-dessus pour adapter le calcul à votre situation : le résultat se met à jour tout de suite.

Comment ça se calcule

Base64 transforme chaque groupe de 3 octets en 4 caractères : la taille devient 4 × plafond(n / 3). Le remplissage « = » complète le dernier groupe. Les formats MIME (76 caractères par ligne) et PEM (64) ajoutent un saut de ligne de 2 octets (CRLF) à chaque ligne. Le surcoût est donc d'environ un tiers.

Les résultats sont fournis à titre indicatif, sans valeur de conseil juridique, fiscal ou financier.

Pour aller plus loin