Xxencode

Xxencode

UUencode war das erste verbreitete Programm, das es ermöglichte, Binärdateien (also z. B. Bilder oder Programme) so umzuwandeln, dass sie nur noch aus „druckbaren ASCII-Zeichen“ bestehen und dadurch problemlos per E-Mail verschickt werden konnten, in denen nur ASCII-Zeichen erlaubt sind.

Inhaltsverzeichnis

Geschichte

Das UU steht für die Wurzeln in UNIX. Das UU in UUencode und -decode steht ebenso wie das UU bei UUcp für UNIX to UNIX copy protocol. Also die Übertragung von einem UNIX-Computer zu einem anderen UNIX-Computer.

Das Prinzip ist dabei ähnlich wie beim heute für E-Mail-Anhänge üblichen Base64-Verfahren: Drei Bytes der Binärdatei (=24 bit) werden auf viermal 6 Bit aufgeteilt und den 6-bit-Werten werden druckbare ASCII-Zeichen zugeordnet. Erste Versionen von UUencode benutzten dabei einfach die ASCII-Zeichen mit den Werten 32 bis 95.

Da das ASCII-Zeichen mit Wert 32 aber das Leerzeichen ist, und dieses den Mailversand oft nicht heil übersteht, wurde stattdessen das ASCII-Zeichen mit dem Wert 96 ("`") verwendet.

Dateiformat

UUencode benutzt ein spezielles Format für die kodierte Datei:

begin modus  dateiname
länge  daten
länge  daten
...
länge  daten
`
end

Als modus werden dabei die Dateirechte, wie sie unter Unix üblich sind, als 3- oder 4stellige Oktalzahl geschrieben. Der Dateiname ist der Name der Originaldatei, ohne Verzeichnis.

Jede Datenzeile beginnt mit einer 1-Byte-Längenangabe, die angibt, wie viele Originalbytes in dieser Zeile kodiert worden sind. Diese Längenangabe ist eine Zahl zwischen 1 und 63 und wird dabei ebenfalls uu-kodiert, also als Zeichen von "!" bis "_". Üblich sind 45 Byte (also der Wert "M") die in 60 Zeichen kodiert werden.

Kodierungsverfahren

Drei Bytes Quelldaten werden durch uuencode in vier Bytes kodiert. Die Daten liegen in der uuencodierten Datei in den unteren sechs Bits der Bytes, die oberen Bits werden durch die Kodierung gesetzt:

        unkodierter Bitstrom  <->  kodierter Bitstrom
aaaaaaaa  bbbbbbbb  cccccccc  <->  0kaaaaaa  0kaabbbb  0kbbbbcc  0kcccccc


Zur Kodierung werden die neuen Sechsergruppen "00eeeeee" zunächst mit 32 XOR-verknüpft. Ist das daraus resultierende Ergebnis <= 32, so wird das Bit k gesetzt.

uncodiert                   (XOR 32)                  (k setzen?)                      codiert
[0]     = [00000000]           ->      [00100000]       --ja-->           [01100000] =    [96]
[1,31]  = [00000001,00011111]  ->  [00100001,00111111]  -nein->  [00100001,00111111] = [33,63]
[32,63] = [00100000,00111111]  ->  [00000000,00011111]  --ja-->  [01000000,01011111] = [64,95]

Oder einfacher: Für 0 ist das Ergebnis 96, für alle anderen muss 32 addiert werden.

Um das Ende der Datei anzuzeigen, muss stets eine "Leerzeile" kodiert werden, die nur das Längenbyte 0 (kodiert "`") enthält. Abschließend folgt eine Zeile mit dem Schlüsselwort end.

Beispiel

Ein Textabsatz von oben diene als Eingabe:

Geschichte

Das UU steht für die Wurzeln in UNIX. Das UU in UUencode und -decode steht 
ebenso wie das UU bei UUcp für UNIX to UNIX copy protocol. Also die Übertragung 
von einem UNIX-Computer zu einem anderen UNIX-Computer.

Die UUencodierung macht daraus:

begin 644 uuencode-Test.txt
M1V5S8VAI8VAT90T*#0I$87,@554@<W1E:'0@9OQR(&1I92!7=7)Z96QN(&EN
M(%5.25@N($1A<R!552!I;B!5565N8V]D92!U;F0@+61E8V]D92!S=&5H="`-
M"F5B96YS;R!W:64@9&%S(%55(&)E:2!556-P(&;\<B!53DE8('1O(%5.25@@
M8V]P>2!P<F]T;V-O;"X@06QS;R!D:64@W&)E<G1R86=U;F<@#0IV;VX@96EN
M96T@54Y)6"U#;VUP=71E<B!Z=2!E:6YE;2!A;F1E<F5N(%5.25@M0V]M<'5T
%97(N#0H`
`
end

XXencode

XXencode arbeitet genauso wie UUencode, verwendet aber ausschließlich Buchstaben und Ziffern und die beiden Sonderzeichen Plus (+) und Minus (-). Dies soll das Risiko, dass einige Zeichen in der Textdatei durch automatische Zeichensatzumwandlungen (z. B. von ASCII nach EBCDIC) während der Übertragung irreparabel beschädigt werden, minimieren.

Zusätzlich besteht bei einigen xxencode-Versionen die Möglichkeit, optional eine Liste sämtlicher verwendeter Zeichen mitzuschicken. Wenn diese Liste durch fehlerhafte Zeichensatzumwandlungen ebenfalls modifiziert wird, kann der Empfänger dies erkennen und die Datei trotzdem korrekt dekodieren, solange die Modifizierungen umkehrbar eindeutig sind.

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

Verwandte Themen

  • 7plus im Amateurfunk eingesetztes effizienteres und zudem fehlersicheres Kodierungsverfahren
  • Kermit ist ein Protokoll, das Binärzeichen ebenfalls auf ASCII-Zeichen abbildet.
  • Base64 eine Kodierung nach MIME, das in E-Mails verwendet wird, um Binärdateien zu übertragen.

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

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

  • Xxencode — is an obsolete binary to text encoding similar to Uuencode which uses only the alphanumeric characters, and the plus and minus signs. It was invented as a means to transfer files in a format which would survive character set translation,… …   Wikipedia

  • Uuencode — war das erste verbreitete Programm, das es ermöglichte, Binärdateien (also z. B. Bilder oder Programme) so umzuwandeln, dass sie nur noch aus „druckbaren ASCII Zeichen“ bestehen und dadurch problemlos per E Mail verschickt werden konnten, in… …   Deutsch Wikipedia

  • UUencode — war das erste verbreitete Programm, das es ermöglichte, Binärdateien (also z. B. Bilder oder Programme) so umzuwandeln, dass sie nur noch aus „druckbaren ASCII Zeichen“ bestehen und dadurch problemlos per E Mail verschickt werden konnten, in …   Deutsch Wikipedia

  • Uuencoding — is a form of binary to text encoding that originated in the Unix program uuencode, for encoding binary data for transmission over the uucp mail system. The name uuencoding is derived from Unix to Unix encoding . Since uucp converted characters… …   Wikipedia

  • Список расширений имени файла/X — / * A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Примечание: Поскольку расширение имени файла может быть любым, представленный список не является полным …   Википедия

  • UUE — У этого термина существуют и другие значения, см. Унуненний. UUE (англ. Uuencode)  метод представления двоичных данных в текстовой форме, пригодной для передачи через средства, предназначенные только для передачи текстов (например,… …   Википедия

  • Штирлиц (программа) — У этого термина существуют и другие значения, см. Штирлиц (значения). Штирлиц Внешний вид программы Тип Шифрование, к …   Википедия

  • Codificación de binario a texto — Codificación binario a texto es un tipo de codificación de transporte de datos , que tiene la finalidad de proteger los datos que se envían a otros ordenadores y evitar así daños debido a ciertas restricciones de la capa de la red de transmisión… …   Wikipedia Español

  • XX — Double Cross (Governmental » Military) Double Cross (Governmental » US Government) * Female Sex Chromosome (Medical » Physiology) * Roman Numeral 20 (Academic & Science » Mathematics) * XXdecode XXencode Encoded file archive (ASCII) (Computing »… …   Abbreviations dictionary

  • XXE — XMLmind XML Editor (Computing » Software) * XML External Entities (Computing » Software) * XXencode Encoded file archive (ASCII) (Computing » File Extensions) …   Abbreviations dictionary

Share the article and excerpts

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