Skip to main content

Base64

Encodez ou décodez du Base64.

Tous les calculs sont effectués localement dans votre navigateur. Aucune donnée n'est envoyée au serveur.

Les résultats sont fournis à titre informatif. Vérifiez-les auprès d'autres sources.

Comprendre le Base64

Le Base64 réécrit des données binaires quelconques à l'aide de 64 caractères imprimables, pour qu'elles puissent transiter par des canaux n'acceptant que du texte : corps d'e-mail, chaînes JSON, URL data:, en-têtes HTTP. C'est un format de transport, pas une mesure de sécurité.

Comment ça marche

  • Prend l'entrée par blocs de trois octets (24 bits) et découpe ces 24 bits en quatre groupes de six.
  • Chaque groupe de 6 bits est un nombre de 0 à 63, utilisé comme index dans l'alphabet A–Z, a–z, 0–9, + et /.
  • Quand la longueur d'entrée n'est pas un multiple de trois, la sortie est complétée par un ou deux =, afin d'être toujours un multiple de quatre.
  • La variante URL-safe remplace + et / par - et _, car + et / ont leur propre sens dans une URL.
3 octets (24 bits) → 4 groupes de 6 bits → 4 caractères de l'alphabet
longueur de sortie = 4 × ceil(longueur d'entrée / 3)

Exemple chiffré

Encodage de la chaîne de trois caractères Hi! — exactement un groupe complet, donc sans remplissage.

  1. H = 0x48 = 01001000, i = 0x69 = 01101001, ! = 0x21 = 00100001
  2. concaténation : 010010000110100100100001
  3. découpage en groupes de six bits : 010010 | 000110 | 100100 | 100001
  4. en nombres : 18, 6, 36, 33
  5. lecture dans l'alphabet : 18→S, 6→G, 36→k, 33→h

Hi! s'encode en SGkh. Quatre caractères de sortie pour trois octets d'entrée — le rapport fixe de 4:3 qui rend le Base64 environ 33% plus volumineux que les données transportées.

Lire le résultat

  • Le Base64 n'est pas du chiffrement et n'offre aucune protection. N'importe qui le décode instantanément — cette page le fait. Ne l'utilisez jamais pour dissimuler un secret.
  • Comptez environ 33% de croissance, plus le remplissage. Un fichier de 10 Mo devient environ 13,3 Mo une fois encodé : c'est pourquoi intégrer de grandes images en URL data: alourdit une page.
  • Le remplissage = ne porte aucune donnée. Certains analyseurs l'exigent, d'autres le rejettent ; JWT le supprime entièrement.
  • L'encodage porte sur des octets, pas des caractères. Le texte doit d'abord être converti en octets, et cet encodeur utilise UTF-8 — la même chaîne peut donner un autre résultat sous un autre encodage.

Questions fréquentes

Le Base64 est-il une forme de chiffrement ?
Non. Le chiffrement exige une clé et vise à résister à un attaquant ; le Base64 n'exige rien et s'inverse en microsecondes. Si vous trouvez une chaîne Base64 dans un fichier de configuration, considérez son contenu comme entièrement public.
Pourquoi certaines chaînes Base64 se terminent-elles par = ou == ?
Parce que l'entrée n'était pas un multiple de trois octets. Un octet restant produit deux caractères de remplissage, deux octets restants un seul. Le remplissage ramène la sortie à un multiple de quatre.
Qu'est-ce que le base64url et quand en ai-je besoin ?
C'est le même encodage où - et _ remplacent + et /, si bien que la sortie passe sans échappement supplémentaire dans un chemin ou une requête d'URL. Les JWT, les paramètres OAuth et beaucoup d'API l'utilisent.