- Base32
-
Base32 beschreibt ein Verfahren zur Kodierung von Binärdaten in eine Zeichenfolge, die nur aus 32 verschiedenen ASCII-Zeichen besteht (plus einem zusätzlichen 33. Zeichen als Füllzeichen am Datenende). Angewendet wird es in Umgebungen, wo nicht zwischen Groß- und Kleinbuchstaben unterschieden wird, so unter Anderem bei Umlaut-Domainnamen.
Es gibt verschiedene Kodierungsmöglichkeiten. Bei Umlaut-Domainnamen wird der sogenannte Punycode verwendet, der die Sonderzeichen und ihre Position kodiert. RFC 3548 beschreibt eine andere, allgemein gültige Kodierung für beliebige Binärdaten, welche wie folgt abläuft:
Fünf 8-Bit-Bytes (also zusammen 40 Bit) werden in acht 5-Bit-Gruppen zerlegt. Jede dieser Gruppen entspricht einer Zahl zwischen 0 und 31. Diese Zahlen werden anhand der nachfolgenden Umsetzungstabelle in „druckbare ASCII-Zeichen“ umgewandelt und ausgegeben. Wenn am Ende kein kompletter 40-Bit-Block mehr gebildet werden kann, wird dieser Block mit Nullbytes aufgefüllt und die 5-Bit-Gruppen, die nur aus Füllbits bestehen, mit = kodiert, um dem Dekodierer mitzuteilen, wie viele Füllbits hinzugefügt wurden.
-
Base32 nach RFC 3548 / RFC 4648 Wert Zeichen Wert Zeichen Wert Zeichen Wert Zeichen 0 A 8 I 16 Q 24 Y 1 B 9 J 17 R 25 Z 2 C 10 K 18 S 26 2 3 D 11 L 19 T 27 3 4 E 12 M 20 U 28 4 5 F 13 N 21 V 29 5 6 G 14 O 22 W 30 6 7 H 15 P 23 X 31 7
Beispielcodierung für den Wert 0
Schritt Block1 Block2 Block3 Block4 Block5 Block6 Block7 Block8 Integer Wert 0 - - - - - - - Repräsentiert als 8 Bits 00000000 - - - - - - - Aufgeteilt in 8x5 Blöcke 00000 00... - - - - - - Fehlende Nullen aufgefüllt 00000 00000 - - - - - - Integer Wert 0 0 - - - - - - Ergibt die Codierung A A = = = = = =
Beispielcodierung für den String "AB" (entspricht in Ascii Codierung den Werten 65 u.66)Schritt Block1 Block2 Block3 Block4 Block5 Block6 Block7 Block8 Integer Werte 65 66 - - - - - - Repräsentiert als 8 Bits 01000001 01000010 - - - - - - Aufgeteilt in 8x5 Blöcke 01000 00101 00001 0.... - - - - Fehlende Nullen aufgefüllt 01000 00101 00001 00000 - - - - Integer Werte 8 5 1 0 - - - - Ergibt die Codierung I F B A = = = =
Die Ziffern 0 und 1 werden nicht verwendet, da bei schriftlicher Wiedergabe eine Verwechslungsgefahr mit den Buchstaben O und I besteht.Base32hex
RFC 3548 wurde von RFC 4648 abgelöst, das eine weitere Kodierung einführt. Diese benutzt – ähnlich wie das Hexadezimalsystem – für die Werte 0 bis 9 die dezimalen Ziffern. Die Werte 10 bis 31 werden durch die Buchstaben A bis V repräsentiert. Damit bleibt, wie bei Hexadezimalzahlen, die Reihenfolge der kodierten Werte bei lexikographischer Sortierung erhalten.
-
Base32hex nach RFC 4648 Wert Zeichen Wert Zeichen Wert Zeichen Wert Zeichen 0 0 8 8 16 G 24 O 1 1 9 9 17 H 25 P 2 2 10 A 18 I 26 Q 3 3 11 B 19 J 27 R 4 4 12 C 20 K 28 S 5 5 13 D 21 L 29 T 6 6 14 E 22 M 30 U 7 7 15 F 23 N 31 V
Diese Kodierung wird unter anderem im DNSSEC verwendet.
Siehe auch
Weblinks
-
Wikimedia Foundation.