Outils pour utilisateurs

Outils du site


software:formats:base64

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
software:formats:base64 [2021/11/30 14:56] – créée yoannsoftware:formats:base64 [2023/05/29 15:18] (Version actuelle) yoann
Ligne 1: Ligne 1:
-{{tag>informatique encodage base64 todo}}+{{tag>informatique encodage base64}}
  
 ====== L'encodage Base64 ====== ====== L'encodage Base64 ======
 +
 +Lors de l'opération de sérialisation (pour sauvegarde ou transmission), le passage de la séquence binaire en mémoire en chaîne de caractères ASCII représentant les valeurs hexadécimales de cette suite d'octets conduit à un doublement de volume (chaque octet est représenté par 2 symboles hexadécimaux).
 +
 +Le codage base64 offre un meilleur rendement en associant 6 bits à un symbole.
 +
 +
 +Ainsi 3 octets ( 3 x 8 bits = 24 bits) quelconques  sont encodés en base64 via 4 symboles (caractères), choisis pour être compatibles avec tous les systèmes existants (confère table d'encodage). Cette même séquence binaire devrait utiliser 6 symboles hexadécimaux.
 +
 +Dans le cas ou l'on souhaite encoder 4 octets quelconques ( soit 32 bits) il faudra :
 +  * Utiliser 5 symboles base64 pour encoder les 30 premiers bits ( 5 x 6 bits = 30 bits). Il restera alors 2 bits à encoder;
 +  * On ajoute des bits de bourrage aux 2 bits restant pour former les 6 derniers bits à encoder. Le symbole ''='' indique que 2 bits sont ajoutés à la fin du codage. Pour cet exemple il faut, rajouter 4 bits donc doubler le symbole ''='' 
 +
 +Ci-dessous une illustration d'un encodage base64 pour une séquence de 4 octets
 +
 +{{ encodage_base64.png}}
 +
 +
 +<note>
 +Sur les courtes séquences binaires, l'encodage en base64 n'est pas meilleur que leur représentation en chaîne de caractères hexadécimaux. Dans l' exemple ci-dessus il faut également 8 symboles en base64 pour encoder les 4 octets.
 +
 +L'encodage base64 devient d'autant plus efficace que les séquences binaires sont longues.
 +</note>
  
 ===== Table d'encodage ===== ===== Table d'encodage =====
 +
 +La table de transcodage est commune à l'ensemble des systèmes informatiques. Elle associe à chaque combinaison de 6 bits un symbole. 
  
 ^ Valeur ^ Valeur binaire ^ Codage  | ^ Valeur ^ Valeur binaire ^ Codage  |
Ligne 72: Ligne 96:
  
 Caractère complément ''='' Caractère complément ''=''
 +
 +===== Exemples =====
 +
 +  * [[dev/python/exemples/encodage_base64|Utiliser l'encodage base64 avec Python]];
 +
  
 ===== Références ===== ===== Références =====
  
   * https://fr.wikipedia.org/wiki/Base64   * https://fr.wikipedia.org/wiki/Base64
software/formats/base64.1638284203.txt.gz · Dernière modification : 2021/11/30 14:56 de yoann