yEnc

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

yEnc (Homophon zu „why encode?“, zu deutsch: „warum kodieren?“) ist ein Kodierungsverfahren, um Binärdateien im Usenet oder per E-Mail zu übertragen.

Kodierung[Bearbeiten]

Das Verfahren besteht im Wesentlichen aus folgender Berechnungsvorschrift um aus einem Eingabebyte E ein Ausgabebyte A zu erzeugen: A=(E+42) \mod 256. Wäre A ein kritisches Zeichen wie 0 (NUL), 10 (LF), 13 (CR) und optional 9 (TAB) oder das Escapezeichen 61 (=, Gleichheitszeichen), so besteht die Ausgabe statt A aus dem Escapezeichen gefolgt von A'=(E+64) \mod 256.[1] Die Kodierung arbeitet demnach wie das ROT13-Verfahren, jedoch auf dem kompletten Wertebereich mit einer anderen Verschiebungskonstante und Escaping. Da nur für 4 oder 5 von 256 möglichen Eingabebytes ein Extrabyte hinzukommt, benötigt das Verfahren nur etwa ein bis zwei Prozent an zusätzlichen Daten (Overhead, bei UUencode und Base64 die nur 6 Bit, also 64 von 256 möglichen Werten benutzen, etwa 33 bis 40 Prozent).

Andere Verfahren haben einen größeren Overhead, da sie um die zuverlässige Übertragung über alle Kanäle zu gewährleisten nur einen weit geringeren Teil aller möglichen Bytewerte als gültige Kodierungswerte unterstützen, was zusätzlich wieder zu einer, wenn auch ungenauen, Fehlererkennung genutzt werden kann. yEnc bietet hierfür die Möglichkeit eine zuverlässigere CRC32-Prüfsumme anzugeben.

Nachteile[Bearbeiten]

Es existiert kein RFC für yEnc, allerdings beschreibt die yEnc-Homepage eine rudimentäre Spezifikation sowie Grammatik, die allerdings dem RFC 2822 oder dem RFC 2045 widerspricht, insbesondere in dem es Steuerzeichen (ausgenommen NUL, CR, LF und optional TAB) als Teil der kodierten Nachricht erlaubt.

Wie auch UUencode ermöglicht yEnc nicht die zuverlässige Erkennung von kodierten Abschnitten. Ferner wurde die Mehrzahl dieser Einschränkungen bereits Jahre zuvor von MIME gelöst. Weiterhin sind nicht alle Transportwege 8-Bit-tauglich, was für das Verfahren notwendig ist. Dies ist jedoch für yEnc zwingend erforderlich, anderenfalls können Datenverluste auftreten.[2] Kritiker bemängeln die fehlende Kompatibilität von yEnc mit existierenden Standards.

Trotz der Nachteile hat yEnc in Binärgruppen im Usenet starke Verbreitung.[3] Genauso wie für UUencode existieren spezielle Programme, um Dateien in mehrere Usenet-Postings zu kodieren oder sie aus solchen zu dekodieren. Viele Newsreader unterstützen yEnc mittlerweile.

Einzelnachweise[Bearbeiten]

  1. Jürgen Helbing: yEncode - A quick and dirty encoding for binaries v1.3. 5. März 2002, abgerufen am 22. Januar 2015 (englisch).
  2. Vorlage:Internetquelle/Wartung/Zugriffsdatum nicht im ISO-FormatClaus Färber: yEnc considered harmful. 6. April 2002, archiviert vom Original am 1. Juni 2009, abgerufen am 3. Juni 2010.
  3. Vorlage:Internetquelle/Wartung/Zugriffsdatum nicht im ISO-FormatSupport - yEnc File Attachment Support. Abgerufen am 3. Juni 2010.

Weblinks[Bearbeiten]