Encodeur/Décodeur Base64
Encoder et décoder les chaînes Base64
Base64 est un schema d'encodage binaire-vers-texte qui convertit des donnees binaires en un ensemble de 64 caracteres ASCII imprimables. Il est utilise pour transmettre en toute securite des donnees binaires a travers des protocoles textuels comme l'email (MIME), le HTML (data URIs) et les en-tetes HTTP. Base64 est un encodage, pas un chiffrement -- n'importe qui peut le decoder.
Qu’est-ce que Base64 ?
Base64 est un schema d’encodage binaire-vers-texte qui represente des donnees binaires a l’aide d’un ensemble de 64 caracteres ASCII. Il a ete concu pour garantir que les donnees binaires puissent etre transmises en toute securite via des systemes textuels qui pourraient ne pas gerer correctement les octets bruts — comme l’email (SMTP), le JSON, le XML et les parametres d’URL.
Le nom “Base64” fait reference a l’alphabet de 64 caracteres utilise pour l’encodage. Contrairement a l’hexadecimal (Base16), qui utilise 16 caracteres, Base64 est plus compact — il represente 6 bits par caractere au lieu de 4.
Comment fonctionne l’encodage Base64
Le processus d’encodage opere sur des groupes de 3 octets (24 bits) a la fois :
- Prendre 3 octets en entree (24 bits au total)
- Diviser en 4 groupes de 6 bits chacun
- Mapper chaque valeur de 6 bits sur un caractere de l’alphabet Base64
- Si la longueur de l’entree n’est pas un multiple de 3, completer avec des caracteres
=
L’alphabet Base64
| Plage d’index | Caracteres | Nombre |
|---|---|---|
| 0-25 | A a Z | 26 |
| 26-51 | a a z | 26 |
| 52-61 | 0 a 9 | 10 |
| 62 | + | 1 |
| 63 | / | 1 |
| Remplissage | = | — |
Variante Base64URL
Pour les URL et les noms de fichiers, les caracteres standard + et / posent probleme. La variante Base64URL (RFC 4648 S5) les remplace :
+devient-/devient_- Le remplissage
=est souvent omis
Cette variante est utilisee dans les JWT, les jetons OAuth et partout ou les jetons apparaissent dans les URL.
Explication du remplissage
Base64 fonctionne par groupes de 3 octets. Lorsque l’entree ne se divise pas exactement par 3 :
| Octets en entree | Sortie Base64 | Remplissage |
|---|---|---|
| 3 octets | 4 caracteres | Aucun |
| 2 octets | 3 caracteres + = | 1 pad |
| 1 octet | 2 caracteres + == | 2 pads |
Cas d’utilisation courants
- Pieces jointes email (MIME) : les fichiers binaires sont encodes en Base64 pour transiter en toute securite via SMTP, qui ne prend en charge que l’ASCII 7 bits
- Data URIs : integration d’images directement dans le HTML ou le CSS sous forme
data:image/png;base64,iVBORw0KGgo... - HTTP Basic Auth : l’en-tete
Authorization: Basictransportenom_utilisateur:mot_de_passeen Base64 - Payloads JSON : les donnees binaires (fichiers, images, certificats) peuvent etre integrees dans des chaines JSON via Base64
- Jetons JWT : chaque segment (header, payload, signature) est encode en Base64URL
Essayez ces exemples
Un texte ASCII simple encode en Base64 produit 'SGVsbG8sIFdvcmxkIQ=='. Le remplissage == indique que la longueur de l'entree n'etait pas un multiple de 3 octets.
Hello, World! Texte UTF-8 avec des caracteres accentues et un emoji. Les caracteres multi-octets produisent une sortie Base64 plus longue car chaque caractere peut occuper 2 a 4 octets.
Cafe ☕ resume Une entree vide ne produit aucune sortie. L'encodage Base64 necessite au moins un octet de donnees en entree.