Base64

Base64

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 lesbaren Codepage-unabhängigen ASCII-Zeichen besteht. Im Zusammenhang mit OpenPGP wird noch eine Prüfsumme (CRC-24) angehängt; dieses leicht modifizierte Verfahren trägt den Namen Radix-64.

Es findet im Internet-Standard MIME (Multipurpose Internet Mail Extensions) Anwendung und wird damit hauptsächlich zum Versenden von E-Mail-Anhängen verwendet. Nötig ist dies, um den problemlosen Transport von beliebigen Binärdaten zu gewährleisten, da SMTP in seiner ursprünglichen Fassung nur für den Versand von 7-Bit-ASCII-Zeichen ausgelegt war. Durch die Kodierung steigt der Platzbedarf des Datenstroms um 33–36 % (33 % durch die Kodierung selbst, bis zu weitere 3 % durch die im kodierten Datenstrom eingefügten Zeilenumbrüche).

Inhaltsverzeichnis

Vorgehen bei der Kodierung

Zur Kodierung werden die Zeichen AZ, az, 09, + und / verwendet, sowie = am Ende. Da diese Zeichen auch in EBCDIC (Extended Binary Coded Decimals Interchange Code) vorkommen (wenn auch an anderen Code-Positionen), ist damit auch ein Datenaustausch zwischen Nicht-ASCII-Plattformen möglich.

Kodierung von Base64

Zur Kodierung werden jeweils drei Byte des Bytestroms (=24 Bit) in vier 6-Bit-Blöcke aufgeteilt. Jeder dieser 6-Bit-Blöcke bildet eine Zahl zwischen 0 und 63. Diese Zahlen werden anhand der nachfolgenden Umsetzungstabelle in „druckbare ASCII-Zeichen“ umgewandelt und ausgegeben. Der Name des Algorithmus erklärt sich durch eben diesen Umstand – jedem Zeichen des kodierten Datenstroms lässt sich eine Zahl zwischen 0 und 63 zuordnen (siehe Tabelle). Mathematisch betrachtet gleicht dies einem Stellenwertsystem der Basis 64. In der Regel wird spätestens nach jeweils 76 ausgegebenen Zeichen, das entspricht 57 codierten Bytes, ein Zeilenumbruch eingefügt, welcher jedoch ansonsten für die Kodierung nicht von Belang ist.

Falls die Gesamtanzahl der Eingabebytes nicht durch drei teilbar ist, wird der zu kodierende Text am Ende mit aus Nullbits bestehenden Füllbytes aufgefüllt, so dass sich eine durch drei teilbare Anzahl an Bytes ergibt. Um dem Dekodierer mitzuteilen, wie viele Füllbytes angefügt wurden, werden die 6-Bit-Blöcke, die vollständig aus Füllbytes entstanden sind, mit = kodiert. Somit können am Ende einer Base64-kodierten Datei null, ein oder zwei =-Zeichen auftreten. Anders gesagt, es werden so viele =-Zeichen angehängt, wie Füllbytes angefügt worden sind.

Bei einem n Zeichen langen zu kodierenden Text beträgt der Platzbedarf für den Base64-kodierten Inhalt (ohne Zeilenumbrüche) (n + 2 - ((n + 2) % 3)) / 3 * 4 Zeichen. Bei Verwendung von Abrundender Ganzzahldivision lautet die Formel: z = 4 \cdot \left \lfloor \frac {n+ 2} 3 \right \rfloor .

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

Für den Fall, dass die Zeichen + und / nicht verwendet werden können (zum Beispiel bei Dateinamen oder URLs), wird mit „base64url“ eine inkompatible Abwandlung beschrieben. Die Zeichen + und / werden durch - (Minus, ASCII 2Dhex) und _ (Unterstrich, ASCII 5Fhex) ersetzt.

Beispiel

Polyfon zwitschernd aßen Mäxchens Vögel Rüben, Joghurt und Quark

Der UTF-8-kodierte Text wird Base64-kodiert zu:

UG9seWZvbiB6d2l0c2NoZXJuZCBhw59lbiBNw6R4Y2hlbnMgVsO2Z2VsIFLDvGJlbiwgSm9n
aHVydCB1bmQgUXVhcms=

Erkennbar ist hierbei, dass Base64 eine nicht lesbare Kodierung erstellt, im Gegensatz dazu ist ein quoted-printable-kodierter Text mit Ausnahme der Sonderzeichen zumindest teilweise lesbar.

Siehe auch

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Base64 — буквально означает  позиционная система счисления с основанием 64. Здесь 64  это наибольшая степень двойки (26), которая может быть представлена с использованием печатных символов ASCII. Эта система широко используется в электронной… …   Википедия

  • Base64 — Numeral systems by culture Hindu Arabic numerals Western Arabic (Hindu numerals) Eastern Arabic Indian family Tamil Burmese Khmer Lao Mongolian Thai East Asian numerals Chinese Japanese Suzhou Korean Vietnamese …   Wikipedia

  • Base64 — Base 64 es un sistema de numeración posicional que usa 64 como base. Es la mayor potencia de dos que puede ser representada usando únicamente los caracteres imprimibles de ASCII. Esto ha propiciado su uso para codificación de correos electrónicos …   Wikipedia Español

  • 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 …   Wikipédia en Français

  • base64 — ● n. m. ►NORM Norme clairement définie (RFC 2045) de codage des caractères 8 bits sur 6 bits: un groupe de 3 octets devient un groupe de 4 ensembles de 6 bits, les 6 bits étant codés selon un sous ensemble de l US ASCII étant: [A Za z0 9+/=]… …   Dictionnaire d'informatique francophone

  • base64 — Kodierungsverfahren zur Umwandlung von 8 Bit in 7 Bit Daten, eingesetzt u.a. bei MIME …   Acronyms

  • base64 — Kodierungsverfahren zur Umwandlung von 8 Bit in 7 Bit Daten, eingesetzt u.a. bei MIME …   Acronyms von A bis Z

  • base64 —    An encoding scheme used by MIME compliant mail systems to convert binary files into a text format that can be processed and sent as e mail.    See also binary file; Multipurpose Internet Mail Extension …   Dictionary of networking

  • Позиционная система счисления с основанием 64 — Base64 буквально означает  позиционная система счисления с основанием 64. Здесь 64  это наибольшая степень двойки (26), которая может быть представлена с использованием печатных символов электронной почте для представления бинарных файлов в… …   Википедия

  • 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

Share the article and excerpts

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