Base64 expliqué : qu'est-ce que c'est, quand l'utiliser et quand ne pas l'utiliser
Si vous travaillez sur le Web pendant plus d'une semaine, vous rencontrerez Base64 : de longues chaînes de lettres, de chiffres apparemment aléatoires et des "+", "/" ou "=" occasionnels apparaissant dans les URI de données, les charges utiles JSON et les jetons. Cela semble énigmatique, mais le concept est simple — et le comprendre dissipe une quantité surprenante de confusion.
Ce que fait réellement Base64
Les ordinateurs stockent tout sous forme binaire. Le problème est que de nombreux systèmes (e-mail, URL, JSON, XML) ont été conçus pour le texte, et les données binaires brutes peuvent contenir des octets que ces systèmes interprètent comme des caractères de contrôle et des modifications. Base64 résout ce problème en réexprimant les données binaires en utilisant seulement 64 caractères ASCII sécurisés et imprimables (A-Z, a-z, 0-9, plus deux symboles). Le résultat est un texte qui survit intact à tout canal de texte uniquement.
Le format est formellement défini dans la RFC 4648. Vous pouvez encoder et décoder n'importe quelle chaîne ou fichier instantanément avec notre encodeur Base64 et notre décodeur Base64.
L'erreur : Base64 n'est PAS un cryptage
C'est le point le plus important de tout l'article. Base64 est un codage, pas un cryptage. Il n'y a ni clé ni secret : quiconque voit une chaîne Base64 peut la décoder jusqu'à l'original en quelques secondes. Ne l'utilisez jamais pour « masquer » des mots de passe, des clés API ou des données sensibles. Il existe uniquement pour des raisons de compatibilité et de sécurité du transport, et non pour des raisons de confidentialité. Si vous avez besoin de secret, vous avez plutôt besoin d'un véritable cryptage (comme AES) ou d'un hachage (comme bcrypt).
Comment fonctionne l'encodage (brièvement)
Base64 prend trois octets d'entrée (24 bits) et les divise en quatre groupes de 6 bits, mappant chaque groupe à l'un de ses 64 caractères. Étant donné que trois octets deviennent quatre caractères, la sortie est environ 33 % plus grande que l'entrée. Lorsque l'entrée n'est pas un multiple propre de trois octets, les caractères de remplissage "=" comblent le vide. Le glossaire MDN Base64 propose une présentation visuelle claire si vous souhaitez des détails au niveau des bits.
Où vous le rencontrerez
- URI de données : petites images intégrées directement dans CSS ou HTML sous forme de
data:image/png;base64,..., enregistrant une requête HTTP. - JWT : l'en-tête et la charge utile d'un jeton Web JSON sont codés en Base64URL : décodez-en un et vous verrez les parties révélées instantanément.
- Authentification de base HTTP : les informations d'identification sont codées en base64 (c'est exactement pourquoi l'authentification de base doit toujours s'exécuter via HTTPS).
- Pièces jointes aux e-mails : MIME utilise Base64 pour envoyer des fichiers binaires via des protocoles de messagerie texte.
Une note sur la taille et quand l'éviter
Cette augmentation de taille d'environ 33 % signifie que Base64 est idéal pour les petits éléments, mais un mauvais choix pour les fichiers volumineux, où l'encombrement l'emporte sur la commodité de l'inline. L'intégration d'une petite icône en tant qu'URI de données est intelligente ; L'encodage en base64 d'une image de héros de 2 Mo dans votre code HTML n'est pas possible : cela retarde le rendu et ne peut pas être mis en cache séparément.
Résultat
Base64 est un format de transport : il permet aux données binaires de circuler en toute sécurité via les canaux texte, rien de plus. Atteignez-le pour intégrer de petits actifs, lire des jetons et intégrer des binaires dans JSON – et ne le confondez jamais avec la sécurité. Lorsque vous devez inspecter une chaîne Base64 dans la nature, le décodeur est à portée de clic.