Fonctions de codage et de décodage Base64

Base64 fait référence à un codage de transfert de contenu MIME spécifique. Le codage Base64 représente des séquences arbitraires d'octets dans un format pour lequel le respect de la casse est requis mais qui na pas besoin d'être lisible pour des êtres humains.

Un sous-ensemble de 65 caractères US-ASCII est utilisé, ce qui permet de représenter 6 bits par caractère imprimable. Le 65ème caractère, "=", est utilisé pour indiquer une fonction de traitement spécial.

Le processus de codage représente des groupes de 24 bits d'entrée sous la forme de chaînes de sortie de 4 caractères codés. En allant de gauche à droite, un groupe d'entrée de 24 bits est formé en concaténant 3 groupes d'entrée de 8 bits. Ces 24 bits sont traités en tant que 4 groupes de 6 bits concaténés, chacun d'entre eux étant converti en un chiffre unique de l'alphabet de base 64.

Chaque groupe de 6 bits est utilisé comme indice dans une table de 64 caractères imprimables. Le caractère référencé par l'indice est placé dans la chaîne de sortie.

Alphabet Base64

Codage valeur   Codage valeur   Codage valeur   Codage valeur
          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
Un traitement spécial est effectué si moins de 24 bits sont disponibles à la fin des données codées. Un quantum de codage complet est toujours complété à la fin d'une quantité. Lorsque moins de 24 bits sont disponibles dans un groupe d'entrée, des bits zéro sont ajoutés (à droite) pour former un nombre entier de groupes de 6 bits. Le remplissage à la fin des données est effectué à l'aide du caractère "=". Comme toute entrée de base 64 est un nombre entier d'octets, seules les situations suivantes peuvent se produire.
  • Le quantum final d'entrée de codage est un multiple entier de 24 bits. L'unité finale de sortie codée sera un multiple entier de 4 caractères sans caractère de remplissage "=".
  • Le quantum final d'entrée de codage est exactement 8 bits. L'unité finale de sortie codée sera deux caractères suivis de deux caractères de remplissage "=".
  • Le quantum final d'entrée de codage est exactement 16 bits. L'unité finale de sortie codée sera trois caractères suivis d'un caractère de remplissage "=".



Commentaires | Notices


Icône d'horodatage Dernière révision: Friday, November 1, 2013


http://pic.dhe.ibm.com/infocenter/wci/v7r0m0/topic/com.ibm.wci.doc/ref_Base64_Encode_and_Decode_Functions.html