Base 64

Base64

En informatique, base64 est un codage de l'information utilisant 64 caractères, choisis pour être disponibles sur la majorité des systèmes. Il est principalement utilisé pour la transmission de messages (courrier électronique et messages de forum Usenet). Il est défini en tant que codage MIME.

Sommaire

Description

Un alphabet de 65 caractères est utilisé pour permettre la représentation de 6 bits par caractère. Le '=' (65e caractère) est utilisé dans le processus de codage pour les caractères finaux.

Le processus de codage représente des groupes de 24 bits de données en entrée par une chaîne en sortie de 4 caractères codés. En procédant de gauche à droite, un groupe de 24 bits est créé en concaténant 3 octets (8 bits par octet). Ces 24 bits sont traités comme 4 groupes concaténés de 6 bits chacun convertis en un unique caractère dans l'alphabet de la base 64.

Chaque groupe de 6 bits est utilisé comme index dans la table des caractères de la base 64. Le caractère référencé par l'index correspondant est utilisé comme codage de ce groupe de 6 bits.

    Valeur Codage   Valeur Codage   Valeur Codage   Valeur Codage
         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  (complément) =
        15 P            32 g            49 x
        16 Q            33 h            50 y

Un traitement spécial est effectué si moins de 24 bits sont disponibles à la fin des données à coder. Aucun bit ne restant non-codé, si moins de 24 bits sont disponibles alors des bits à zéro sont ajoutés à la droite des données pour former un nombre entier de groupes de 6 bits. Étant donné que toutes les données d'entrées codées en base 64 sont constituées d'un nombre entier d'octets seuls trois cas sont possibles :

  • si la dernière partie des données d'entrée est constituée d'un nombre de bits multiple de 24, alors le dernier groupe de caractères de sortie sera un multiple de 4 caractères sans complément avec des '=' ;
  • si la dernière partie des données d'entrée fait exactement 8 bits, alors le dernier groupe de caractères de sortie sera composé de deux caractères de codage suivis des deux caractères '=' (de complément) ;
  • si la dernière partie des données d'entrée fait exactement 16 bits, alors le dernier groupe de caractères de sortie sera composé de trois caractères de codage suivis d'un caractère '=' (de complément).

base64url

Le document RFC 4648 prévoit une alternative pour un encodage compatible avec les noms de fichiers et les URI. En effet les caractères 62 (+) et 63 (/) peuvent poser problème avec certains systèmes de fichier et dans les URI. La solution retenue consiste à remplacer ces caractères respectivement par un moins (-) et un souligné (_). Le caractère de complément reste le =, mais peut être ignoré.

    Valeur Codage   Valeur Codage   Valeur Codage   Valeur Codage
         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 - (minus)
        12 M            29 d            46 u            63 _ (underline)
        13 N            30 e            47 v
        14 O            31 f            48 w  (complément) =
        15 P            32 g            49 x
        16 Q            33 h            50 y

Exemple

Prenons le groupe de 3 caractères « Hi! ». Ci-dessous la première ligne indique en binaire l'équivalence de ces 3 octets. La transformation consiste comme on peut le voir, à séparer les bits pour former en sortie 4 groupes de 6 bits :

01001000 01101001 00100001 ⇔ 010010 000110 100100 100001

Les 4 groupes de 6 bits en sortie nous donnent les valeurs 18, 6, 36 et 33. Ainsi en suivant la correspondance de la table indexée nous obtenons les 4 caractères « SGkh ».

Exemple avec OpenSSL

Encodage d'un fichier texte en base64 :

$ openssl enc -base64 -in monfichier.txt -out monfichier.b64

Décodage d'un fichier texte en base64 :

$ openssl enc -d -base64 -in monfichier.b64 -out monfichier.txt

Liens externes

Ressources

  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Base64 ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Base 64 de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • Base 64 — Base 64,   MIME …   Universal-Lexikon

  • Base 64 — The base num|64 system is a numeral system with 64 as its base. It is the largest power of two base that can be represented using single printable ASCII characters. This has led to its use as a transfer encoding for e mail among other things …   Wikipedia

  • Base 64 — Base64 ist ein Begriff aus dem Computerbereich und beschreibt ein Verfahren zur Kodierung von 8 Bit Binärdaten (z. B. ausführbare Programme, ZIP Dateien), in eine Zeichenfolge, die nur aus wenigen, Codepage unabhängigen ASCII Zeichen besteht. Im… …   Deutsch Wikipedia

  • Base-64 — …   Википедия

  • код Base 64 — Способ кодировки электронной почты, совместимый с MIME. [http://www.morepc.ru/dict/] Тематики информационные технологии в целом EN Base 64 …   Справочник технического переводчика

  • Base 36 — is a positional numeral system using 36 as the radix. The choice of 36 is convenient in that the digits can be represented using the Arabic numerals 0 9 and the Latin letters A Z. Base 36 is therefore the most compact case insensitive… …   Wikipedia

  • Base (mathematics) — In arithmetic, the base refers to the number b in an expression of the form b n . The number n is called the exponent and the expression is known formally as exponentiation of b by n or the exponential of n with base b . It is more commonly… …   Wikipedia

  • 64 (number) — ← 63 65 → 64 ← 60 61 62 63 64 65 66 …   Wikipedia

  • Base Palmer — Saltar a navegación, búsqueda Palmer …   Wikipedia Español

  • Base de datos de tablas de finales — Saltar a navegación, búsqueda Una interfaz típica para solicitar una base de datos de tablas. Para cada movimiento del Blanco, la base de datos devuelve el número de movimientos necesarios para ganar. Rc6 y Da6+ gana en cinco movimientos, por lo… …   Wikipedia Español

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”