Encodage Base64

Objectif de l’encodage Base64

Représenter des données binaires en utilisant 64 caractères imprimables. Ces 64 caractères incluent :

  • ‘A-Z’, ‘a-z’, ‘0-9’ (62 lettres et chiffres)

  • ‘+’ et ‘/’ (2 caractères spéciaux)

  • ‘=’ (utilisé pour le remplissage)

table base64

Cette table n’a rien à voir avec la table ASCII malgré une certaine similitude :

  • La table Base64 ne contient que 64 caractères alors que la table ASCII en comporte 128 (256 pour la table ASCII étendue)

  • Le code des lettres est différent.
    Exemple: ‘A’ se code 000000|2=00|16 en Base64 et 01000001|2=41|16 en ASCII

Domaines d’utilisation

  • Insertion de petites images ou icônes dans du HTML. Exemple :

    Logo Lycée A. Benoit
  • Encodage des pièces jointes d’emails. Exemple :

    From: expéditeur@exemple.com
    To: destinataire@exemple.com
    Subject: Exemple de pièce jointe Base64
    MIME-Version: 1.0
    Content-Type: multipart/mixed; boundary="boundary-exemple"
    
    --boundary-exemple
    Content-Type: text/plain; charset=UTF-8
    
    Bonjour,
    
    Voici un exemple de mail avec une pièce jointe encodée en Base64.
    
    Cordialement,
    L'expéditeur
    
    --boundary-exemple
    Content-Type: text/plain; name="fichier.txt"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment; filename="fichier.txt"
    
    VGVzdCBkZSBwaWVjZSBqb2ludGUgZW4gQmFzZTY0IQo= (1)
    
    --boundary-exemple--
    1 Encodage Base64 du texte : “Test de piece jointe en Base64!”
  • Transmission de données binaires dans des réponses d’API

Principe

base64.drawio

🞄  🞄  🞄