C'est quoi le Base64 et pourquoi on le voit partout
Cette chaîne de texte bizarre dans ton code n'est pas du charabia. Voici ce que ça signifie vraiment.
Tu es en train de déboguer une API. Quelque part dans la réponse, tu vois ça :
SGVsbG8gV29ybGQh
Ou tu regardes le code source brut d'un email et tu trouves des blocs de texte qui ressemblent à du tapotage de clavier aléatoire. Ou ton CSS a une image de fond qui commence par data:image/png;base64, suivie d'un mur de caractères.
C'est du Base64. C'est partout une fois qu'on commence à le chercher.
Ce qu'est réellement le Base64
Les données binaires—images, fichiers, tout ce qui n'est pas du texte brut—ne s'entendent pas bien avec les systèmes conçus pour le texte. L'email a été conçu pour les caractères ASCII. Les URLs ont des jeux de caractères restreints. JSON ne gère pas le binaire brut.
Le Base64 convertit les données binaires en une chaîne de 64 caractères "sûrs" : A-Z, a-z, 0-9, +, et /. N'importe quel fichier binaire devient une chaîne de texte qui ne cassera pas lorsqu'elle passe à travers des systèmes texte uniquement.
Ce n'est pas du chiffrement. Ce n'est pas de la compression. C'est juste de l'encodage—une autre façon de représenter les mêmes données.
Où tu vas le voir
Pièces jointes email. Quand tu envoies un PDF par email, il est encodé en Base64, transmis en tant que texte, puis décodé à l'autre bout.
URIs de données. Cette syntaxe data:image/png;base64,... intègre des images directement dans HTML ou CSS. Pas besoin de requête de fichier séparé.
Authentification API. L'authentification basique envoie username:password comme une chaîne Base64. (C'est pourquoi l'authentification basique sur HTTP n'est pas sécurisée—le Base64 n'est pas du chiffrement.)
JWTs. Les JSON Web Tokens sont trois objets JSON encodés en Base64 joints par des points.
Données binaires en JSON. JSON ne peut pas inclure d'octets bruts, donc le binaire est d'abord encodé en Base64.
Encodage vs Chiffrement
Les gens confondent ça constamment.
Encodage Base64 : Réversible par n'importe qui. Pas besoin de clé. Pas sécurisé. Juste un reformatage.
Chiffrement : Réversible uniquement avec la bonne clé. Réellement sécurisé.
Si tu peux décoder quelque chose sans mot de passe, ce n'est pas chiffré. Le Base64 "cache" les données uniquement aux personnes qui ne savent pas ce qu'est le Base64—c'est-à-dire personne qui voudrait réellement les lire.
N'enregistre pas de mots de passe en Base64. Ne présume pas que les données Base64 dans une API sont privées. C'est juste du texte qui a l'air bizarre.
Le problème de taille
Le Base64 augmente la taille des données d'environ 33%. Une image de 100KB devient ~133KB une fois encodée en Base64.
Cela compte pour les URIs de données. Intégrer une grande image en Base64 dans ton CSS rend le fichier plus gros et ne peut pas être mis en cache séparément. Bon pour les petites icônes. Mauvais pour les images hero.
Utilisations pratiques
Débogage. Tu vois du Base64 dans une réponse API ? Décode-le pour voir ce qu'il contient.
Intégrer de petites images. Les icônes de moins de 1-2KB valent souvent la peine d'être intégrées comme URIs de données pour économiser des requêtes HTTP.
Passer du binaire via des canaux texte. Besoin d'inclure du contenu de fichier dans JSON ? Encode-les en Base64.
Lire les JWTs. Décode chaque section pour voir l'en-tête, la charge utile et comprendre quelles revendications le token contient.
Le Base64 n'est pas compliqué. C'est juste une façon de transformer n'importe quelles données en une chaîne de texte. Reconnais-le, décode quand nécessaire, et sache qu'il ne fournit aucune sécurité—juste de la compatibilité.