Base85-Z85 Code

Herkunft / Verwendung:Die Z85-Variante der Base85 Codierung verwendet andere Zeichen als ASCII85 und verzichtet z. B. auf die Anführungszeichen / Hochkommata (String-Begrenzungen), um sie besser in Source-Codes integrieren zu können.

Base85 ist ähnlich Base64 ein weiteres Verfahren zur Abbildung von 8-bit-Binärdaten auf lesbare ASCII-Zeichen. Hier werden allerdings 85 Zeichen benutzt. So ist der Overhead nur 25% statt 33% bei Base64.

Es werden jeweils 4 Bytes der Binärdaten auf 5 Bytes Base85-Code abgebildet. Der codierte Text wird so ein viertel größer als die Binärdaten.

Beschreibung des Algorithmus

Vier Bytes können 2564 = 4.294.967.296 verschiedene mögliche Zustände annehmen. Um diese mit möglichst geringem Overhead zu kodieren, wählt man eine geeignete Teilmenge aus den druckbaren ASCII-Zeichen aus, die es ermöglicht, mit 5 Zeichen auszukommen. Hierfür ist ein Alphabet von mindestens 85 Zeichen nötig, da 855 = 4.437.053.125 = 4.294.967.296 ist.

Für die Kodierung werden die vier Bytes als vierstellige Zahl zur Basis 256 aufgefasst und in eine fünfstellige Zahl zur Basis 85 umgewandelt. Die "Ziffern" der Basis-85-Zahl wird dann nach folgender Tabelle in durckbare ASCII-Zeichen ersetzt: 0 0 17 h 34 y 51 P 68 ! 1 1 18 i 35 z 52 Q 69 / 2 2 19 j 36 A 53 R 70 * 3 3 20 k 37 B 54 S 71 ? 4 4 21 l 38 C 55 T 72 & 5 5 22 m 39 D 56 U 73 < 6 6 23 n 40 E 57 V 74 > 7 7 24 o 41 F 58 W 75 ( 8 8 25 p 42 G 59 X 76 ) 9 9 26 q 43 H 60 Y 77 [ 10 a 27 r 44 I 61 Z 78 ] 11 b 28 s 45 J 62 . 79 { 12 c 29 t 46 K 63 - 80 } 13 d 30 u 47 L 64 : 81 @ 14 e 31 v 48 M 65 + 82 % 15 f 32 w 49 N 66 = 83 $ 16 g 33 x 50 O 67 ^ 84 #

Beispiel

Binärfolge:C001C0DE (Hexcode)
Kodiert:ZYzmc
c0 01 c0 de <-- hexadezimal (Basis 16) 11000000 00000001 11000000 11011110 <-- binär (Basis 2) 3221340382 <-- dezimal (Basis 10) (61) (60) (35) (22) (12) <-- Basis 85 (Ziffernwertigkeit dez.) Z Y z m c <-- ASCII-Zeichen

Code / Chiffre online dekodieren / entschlüsseln bzw. kodieren / verschlüsseln (DeCoder / Encoder / Solver-Tool)