À quoi sert vraiment le Base64
Le Base64 ne sert pas à protéger une information : il sert à faire passer des données
binaires dans un canal qui n'accepte que du texte. C'est pour ça qu'on le croise dans
les pièces jointes d'e-mail (MIME), dans les data: URI qui embarquent une
petite image directement dans du CSS ou du HTML, dans les en-têtes
Authorization: Basic, et dans les jetons JWT dont les deux premières
parties sont du Base64URL.
Collez votre texte dans le champ ci-dessus : la conversion se fait à la frappe, dans votre navigateur. Rien n'est envoyé à un serveur, ce qui compte quand on manipule un jeton ou une clé.
Comment ça marche, en une phrase
Le Base64 découpe les données en blocs de 6 bits et fait correspondre chaque bloc à
l'un des 64 caractères de l'alphabet A-Z a-z 0-9 + /. Comme 3 octets
(24 bits) donnent exactement 4 caractères, la sortie est plus grosse que l'entrée.
- +33 % de taille — c'est le coût fixe de l'encodage. 300 Ko d'image deviennent environ 400 Ko de Base64.
- Le signe
=en fin de chaîne est un remplissage, pas une erreur : il complète le dernier bloc quand la taille n'est pas un multiple de 3. - Base64URL remplace
+et/par-et_, parce que les deux premiers ont un sens particulier dans une URL.
Les trois erreurs classiques
1. Croire que c'est du chiffrement. C'est l'erreur la plus fréquente et la plus coûteuse. Le Base64 se décode sans clé, en une seconde, par n'importe qui — y compris par cet outil. Un mot de passe « encodé en Base64 » dans un fichier de configuration est un mot de passe en clair avec une étape de plus.
2. Embarquer de grosses images en data URI. C'est tentant pour éviter une requête HTTP, mais au-delà de quelques kilo-octets on alourdit le CSS ou le HTML, qui devient non cachable indépendamment et bloque le rendu. À réserver aux petites icônes.
3. Oublier l'encodage de caractères. Un texte accentué doit être en UTF-8 avant d'être encodé, sinon le décodage rend des caractères cassés. C'est la cause la plus fréquente des « é » transformés en « é ».