Base32 Code
Kategorisierung: | Kodierungen / binärbasiert |
Siehe auch: | UUEncode, Base32, Base64, Base85, ASCII85 |
Herkunft / Verwendung: | Base32 funktioniert im Prinzip wie Base64, nur dass die encodierte Zeichenkette auf die noch kleinere Menge von 32 Zeichen (A-Z und 2-7) abgebildet werden. Ein paar Ziffern mussten weggelassen werden, weil nicht alle in 32 Zeichen passen. Da 0 mit O, 1 mit I, 8 mit B und 9 mit g verwechselt werden könnten, lässt man diese weg. 32 Zeichen kann man in 5 Bit (2^5=32) abbilden. So können etwa 5 binäre Bytes (mit je einem Wertebereich von 0-255) auf 8 Zeichen (mit je einem Wertebereich von 0-31) abgebildet werden. |
Beschreibung des Algorithmus

Der Binärcode (rot) wird in eine Bitfolge gewandelt. Jeweils 5 Bits werden auf ein Zeichen (orange) abgebildet. Es werden jeweils 40-Bit-Blöcke kodiert. Gegebenenfalls wird mit 0-Bytes aufgefüllt, um den letzten Block zu vervollständigen. Die 5-Bit-Gruppen, die nur aus Füllbits bestehen werden mit = kodiert, um dem Dekodierer mitzuteilen, wie viele Füllbits hinzugefügt wurden.
Tabelle für Base32 nach RFC 3548 / RFC 4648 (A-Z, 2-7):
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
Tabelle für Base32 nach RFC 4648 (A-V, 0-9):
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
Beispiel
Binärfolge: | C001DE3AF8 (Hexcode) |
Variante: | Base32 (A-Z, 2-7) enkodieren |
Kodiert: | YAA54OXY |
C0 01 DE 3A F8 <-- binär hexadezimal
1100000000000001110111100011101011111000 <-- 8 Bit gruppiert
1100000000000001110111100011101011111000 <-- 5 Bit gruppiert
24 0 0 29 28 14 23 24 <-- Gruppenwert dezimal
Y A A 5 4 O X Y <-- Zeichenersatz für Werte 0 bis 31