Encodage et Décodage Base64 : Le Guide Complet

Qu'est-ce que Base64 ?

Base64 est un schéma d'encodage binaire-à-texte qui représente des données binaires sous forme de chaîne ASCII. Il est largement utilisé dans diverses applications informatiques, en particulier lorsqu'il est nécessaire d'encoder des données binaires qui doivent être stockées et transférées sur des supports conçus pour traiter des données textuelles.

Pourquoi Utiliser Base64 ?

Base64 est couramment utilisé pour plusieurs raisons :

Comment Fonctionne Base64

L'encodage Base64 fonctionne en convertissant chaque groupe de trois octets de données d'entrée en quatre caractères ASCII. Voici une explication simplifiée du processus :

  1. Prendre 3 octets de données binaires (24 bits au total)
  2. Diviser ces 24 bits en quatre groupes de 6 bits
  3. Convertir chaque groupe de 6 bits en son caractère Base64 correspondant

L'alphabet Base64 se compose de 64 caractères : A-Z, a-z, 0-9, + et /. Le caractère = est utilisé pour le remplissage lorsque la longueur des données d'entrée n'est pas divisible par 3.

Table d'Encodage Base64

Valeur Encodage  Valeur Encodage  Valeur Encodage  Valeur Encodage
    0 A            17 R            34 i            51 z
    1 B            18 S            35 j            52 0
    2 C            19 T            36 k            53 1
    3 D            20 U            37 l            54 2
    4 E            21 V            38 m            55 3
    5 F            22 W            39 n            56 4
    6 G            23 X            40 o            57 5
    7 H            24 Y            41 p            58 6
    8 I            25 Z            42 q            59 7
    9 J            26 a            43 r            60 8
   10 K            27 b            44 s            61 9
   11 L            28 c            45 t            62 +
   12 M            29 d            46 u            63 /
   13 N            30 e            47 v
   14 O            31 f            48 w         (remplissage) =
   15 P            32 g            49 x
   16 Q            33 h            50 y

Base64 dans les Langages de Programmation

Base64 en Python


import base64

# Encodage
texte = "Bonjour, Monde !"
encode = base64.b64encode(texte.encode('utf-8')).decode('utf-8')
print(f"Encodé : {encode}")

# Décodage
decode = base64.b64decode(encode).decode('utf-8')
print(f"Décodé : {decode}")
            

Base64 en JavaScript


// Encodage
let texte = "Bonjour, Monde !";
let encode = btoa(texte);
console.log(`Encodé : ${encode}`);

// Décodage
let decode = atob(encode);
console.log(`Décodé : ${decode}`);
            

Base64 en PHP


<?php
// Encodage
$texte = "Bonjour, Monde !";
$encode = base64_encode($texte);
echo "Encodé : " . $encode . "\n";

// Décodage
$decode = base64_decode($encode);
echo "Décodé : " . $decode . "\n";
?>
            

Cas d'Utilisation Courants de Base64

Intégration d'Images dans HTML/CSS

Base64 peut être utilisé pour intégrer directement de petites images dans HTML ou CSS, réduisant ainsi les requêtes HTTP :


<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==" alt="Image encodée en Base64">
            

Envoi de Données en JSON

Lorsque vous devez inclure des données binaires dans du JSON, l'encodage Base64 est souvent utilisé :


{
  "nom": "exemple.png",
  "contenu": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg=="
}
            

Base64 URL-safe

Pour une utilisation dans les URL, une variante de Base64 remplace + et / par - et _ respectivement :


Standard : a+b/c==
URL-safe : a-b_c==
            

Outils Base64 en Ligne

Voici quelques outils en ligne populaires pour l'encodage et le décodage Base64 :

Base64 et Sécurité

Avertissement : Base64 est un schéma d'encodage, pas une méthode de chiffrement. Il ne fournit aucune sécurité ni protection des données. N'utilisez jamais Base64 pour stocker ou transmettre des informations sensibles sans un chiffrement approprié.

Bien que Base64 puisse rendre les données illisibles pour les humains, il est très facile à décoder. Utilisez toujours des méthodes de chiffrement appropriées pour les données sensibles.

Avantages et Inconvénients de Base64

Avantages :

Inconvénients :

Questions Fréquemment Posées

Base64 est-il un chiffrement ?

Non, Base64 n'est pas un chiffrement. C'est un schéma d'encodage qui représente des données binaires sous forme de chaîne ASCII. Il ne fournit aucune sécurité.

Pourquoi l'encodage Base64 augmente-t-il la taille du fichier ?

L'encodage Base64 augmente la taille du fichier car il représente 3 octets de données avec 4 caractères. Cela entraîne une augmentation d'environ 33% de la taille.

Les données encodées en Base64 peuvent-elles être compressées ?

Oui, les données encodées en Base64 peuvent être compressées, mais il est généralement plus efficace de compresser les données avant de les encoder en Base64.