ForHosting KIT · Entwickler-Tools

yEnc kodieren und dekodieren

Kodiert „Hello Usenet“ als gerahmtes yEnc-Fragment mit =ybegin-Kopf und einer =yend-Zeile samt Prüfsumme 38A1E859 und dekodiert solche Fragmente wieder zu Text. Jedes Byte wird um 42 verschoben statt aufgebläht, daher bleibt der Mehraufwand weit unter Base64. Kostenlos in Ihrem Browser.

  • Kostenlos
  • Läuft in Ihrem Browser
  • Ohne Anmeldung
  • Ihre Daten bleiben auf Ihrem Gerät
Nutzen Sie es über WebAPIE-MailTelegramApp bald
Wenn Sie eingeben
Text
Hello Usenet
Berechnungsmodus
Encode
Name
hello.bin
Erhalten Sie
Kodierung
yenc
Größe
12
Crc32
38A1E859
Gerade
128

Die Engine ist vollständig deterministisch: derselbe Text, derselbe Modus, derselbe Name und dieselbe Zeilenlänge erzeugen immer dasselbe Ergebnis, ohne Netzaufrufe, ohne Zufallssalze und ohne datumsabhängige Abkürzungen. Übliche Prüfungen umfassen das Kodieren von Hello Usenet in ein gerahmtes Artikelfragment und das Dekodieren dieses Fragments zurück zur Originalphrase.

Warum yEnc so wenig Platz braucht

Base64 macht aus je drei Bytes vier Zeichen, eine Datei wächst also um etwa ein Drittel. yEnc geht anders vor: Jedes Byte wird um 42 verschoben und als einzelnes Zeichen geschrieben, nur vier kritische Werte, Null, Zeilenvorschub, Wagenrücklauf und Gleichheitszeichen, erhalten ein Gleichheitszeichen und einen Zuschlag von 64. Weiche Zeilenumbrüche halten die Zeilen nahe der klassischen Breite von 128 Zeichen. Deshalb wurde yEnc zum üblichen Weg, Binärdaten in Usenet-Artikeln zu transportieren. Ihr Text wird vorher in UTF-8-Bytes umgewandelt, sodass Umlaute und andere Schriften unverändert zurückkommen.

Kopfzeile und Prüfsumme lesen

Ein kodiertes Fragment beginnt mit einer =ybegin-Zeile, die Größe, Zeilenlänge und Dateinamen nennt, und endet mit einer =yend-Zeile, die die Größe wiederholt und oft eine CRC-32-Prüfsumme anhängt. „Hello Usenet“ mit dem Namen hello.bin ergibt 12 Bytes Eingabe, ein gerahmtes Ergebnis von 85 Bytes und die Prüfsumme 38A1E859. Beim Dekodieren werden vollständige Fragmente ebenso angenommen wie ein bloßer Rumpf, was hilft, wenn ein Support-Ticket nur einen eingefügten Auszug enthält.

yEnc in Usenet, Binärdaten und Support

Frontend- und Support-Teams dekodieren yEnc-Schnipsel bei Ticket-Untersuchungen, ohne Daten in Ad-hoc-Skripte zu kleben, die kritische Escapes oder weiche Umbrüche falsch behandeln. Backend-Dienste kodieren kurze mehrsprachige Zeichenketten oder Konfigurationsproben in gerahmtes yEnc für Integrationstests, die Offset und Header-Layout eines echten Posters treffen müssen. Qualitätstechniker erzeugen deterministische encode- und decode-Paare für Vertragstests, damit eine Bibliothek mit behaupteter yEnc-Unterstützung Escape-Regeln, CRC-Polynome oder Header-Attributreihenfolge nicht still ändern kann, ohne Goldens zu brechen.

Kombinieren Sie es mit Base64- und quoted-printable-Helfern, wenn Sie verwandte Transferkodierungen brauchen, und mit anderen Textwerkzeugen, wenn Sie ein kleines Labor freier, deterministischer Kodierer aufbauen.

Debugging von Usenet-Artikeln

Kodieren oder dekodieren Sie yEnc-Artikelfragmente, damit size auf =ybegin, Körper-Escapes und CRC-32-Trailer dem entsprechen, was Newsreader erwarten.

Was kostet der yEnc-Kodierer?

Er ist auf dieser Seite in Ihrem Browser kostenlos.

Worin unterscheidet sich yEnc von Base64?

yEnc verschiebt jedes Byte um 42 und escaped nur wenige kritische Werte, sodass der Overhead deutlich unter dem Vier-Zeichen-Alphabet von Base64 liegt. Es wurde für Usenet-Artikelkörper entworfen, nicht für E-Mail-MIME.

Was passiert bei einem fehlerhaften Escape oder CRC?

Unvollständige '='-Escapes, size-Abweichungen und CRC-32-Abweichungen werden abgelehnt statt geraten.

Ist das Ergebnis deterministisch?

Ja. Derselbe Text, Modus, Name und dieselbe Zeilenlänge erzeugen immer dasselbe Ergebnis, ohne Netz, Zufall oder datumsabhängiges Verhalten.

Welche Bytes maskiert yEnc?

Jedes Byte wird zuerst um 42 verschoben. Ist das Ergebnis einer von vier kritischen Werten, also Null, Zeilenvorschub, Wagenrücklauf oder Gleichheitszeichen, wird es als Gleichheitszeichen plus diesem Wert zuzüglich 64 geschrieben; alles andere bleibt ein einzelnes Zeichen.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

POSThttps://api.kit.forhosting.com/enc/yenc

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/enc/yenc \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello Usenet"}'
{
  "text": "Hello Usenet"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.yenc",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Dieser yEnc-Kodierer wandelt reinen UTF-8-Text in das seit Langem auf Usenet genutzte Binärübertragungsformat mit geringem Overhead um und dekodiert gerahmte oder rohe yEnc-Payloads zurück zu lesbarem Text. yEnc behält fast jedes Oktett als einzelnes druckbares oder erweitertes Zeichen nach einem festen Offset von zweiundvierzig bei und escaped nur eine kleine kritische Menge, sodass Binärdaten in NNTP-Artikelkörpern mit weit weniger Aufblähung als Base64 reisen. Nutzen Sie es kostenlos im Browser für Usenet-Werkzeugpraxis und Artikel-Debugging, oder rufen Sie die API zu $0.002 pro erfolgreicher Anfrage auf, wenn Pipelines reproduzierbare yEnc-Transformationen in CI und Backend-Diensten brauchen.

Was yEnc ist und was dieses Werkzeug zurückgibt

yEnc ist eine Content-Transfer-artige Kodierung, damit Binärdateien in Usenet-Artikeln reisen können, ohne die Ein-Drittel-Größenstrafe von Base64. Jedes Eingabe-Byte wird um zweiundvierzig modulo zweihundertsechsundfünfzig verschoben; nur die kritischen Werte Null, Zeilenvorschub, Wagenrücklauf und Gleichheitszeichen werden escaped, indem ein Gleichheitszeichen vorangestellt und vor der Ausgabe vierundsechzig addiert wird. Wenn Sie opakes e-mail-sicheres Packen brauchen, bevorzugen Sie Base64- oder quoted-printable-Endpunkte; diese Landing gilt der usenet-orientierten yEnc-Kodierung, die News-Clients und Binär-Poster bereits erwarten. Kodierer fügen dann weiche Zeilenumbrüche ein, damit Artikelzeilen nahe der klassischen Breite von einhundertachtundzwanzig Zeichen bleiben, und rahmen den Körper mit einer =ybegin-Zeile, die size, optionale Zeilenlänge und einen Dateinamen trägt, plus einem =yend-Trailer, der oft size und eine IEEE-CRC-32-Prüfsumme enthält. Diese Seite folgt diesem Vertrag stets für UTF-8-Text: encode-Modus kodiert Ihre Zeichenkette in UTF-8, wendet Offset und kritische Escapes an, umbricht Zeilen und emittiert Header mit berechnetem CRC; decode-Modus entfernt Steuerzeilen, ignoriert CR und LF im Körper, kehrt Escapes um, prüft size und CRC wenn vorhanden und lehnt unvollständige Gleichheitssequenzen ab, statt zu raten. Die JSON-Antwort enthält result für die transformierte Zeichenkette, mode mit echo von encode oder decode, encoding fest auf yenc, size für die Binärpayload-Länge, optionale name und crc32, framed true wenn Header genutzt oder erkannt wurden, sowie input_bytes plus output_bytes, damit Sie Größen in Tests asserten können. Es gibt keinen Streaming-Pfad und keine stille Reparatur von kaputtem yEnc: entweder ist die Zeichenkette unter diesen Regeln gültig, oder die Anfrage scheitert mit invalid_input.

Wie text, mode, name und line gelesen werden und Ergebnisse reproduzierbar bleiben

Mode ist standardmäßig encode und akzeptiert decode explizit; Aliasse op, direction und action mappen denselben Schalter für Skripte, die diese Namen schon verwenden. Encode akzeptiert jede Unicode-Zeichenkette, wandelt sie mit dem Plattform-TextEncoder in UTF-8-Bytes und emittiert ein gerahmtes yEnc-Artikelfragment mit CRC-32 in Großbuchstaben. Nach der Byte-Wiederherstellung stellt eine fatale UTF-8-Dekodierung sicher, dass Binärmüll nicht zu Mojibake-Text wird. Das bevorzugte Payload-Feld ist text, mit Aliassen input, value und s, damit Formulare, Query-Strings und SDK-Clients denselben Vertrag ohne Umbenennen von Spalten nutzen. Optionales name (Aliasse filename, file) wird beim Kodieren auf die =ybegin-Zeile geschrieben und ist standardmäßig data.bin; es darf keine Wagenrückläufe, Zeilenvorschübe oder Gleichheitszeichen enthalten. Optionales line (Aliasse line_length, linewidth) setzt die Körper-Umbruchsbreite zwischen zweiunddreißig und fünfhundertzwölf Zeichen und ist standardmäßig einhundertachtundzwanzig, passend zur gängigen yEnc-Praxis. Decode akzeptiert gerahmten Text mit =ybegin und =yend oder einen reinen Körperstrom: ein unvollständiges Gleichheits-Escape am Ende, ein Gleichheitszeichen gefolgt von einem Zeilenumbruch, eine size-Abweichung zur dekodierten Bytezahl oder eine CRC-32-Abweichung scheitern mit einer klaren invalid_input-Meldung. Kombinieren Sie den kostenlosen Browserlauf auf dieser Seite mit der kostenpflichtigen API, wenn Sie dasselbe mathematische Ergebnis in einer automatisierten Pipeline brauchen, ohne yEnc-Tabellen selbst neu zu implementieren. Ungültige Eingaben liefern invalid_input und werden nicht berechnet, was Validierung günstig hält, während erfolgreiche Transformationen ein fester Stückpreis bleiben.

Wo yEnc in Usenet, Binärdaten und Test-Fixtures passt

Lehrende nutzen dasselbe Werkzeug, um den Unterschied zwischen Base64-Opazität und yEncs usenet-typischer Low-Overhead-Kodierung für vorwiegend binäre Payloads zu vermitteln. Auf dieser Seite läuft die Arbeit vollständig in Ihrem Browser; über die API kostet jede erfolgreiche Abfrage $0.002, fehlgeschlagene Validierung wird nicht berechnet, und nach der Antwort wird nichts gespeichert. Diese Aufteilung — kostenlose interaktive Erkundung und eine preislich identische API — entspricht dem restlichen KIT-Tier-A-Katalog und lässt Sie von einer Unterrichtsdemo zu einer automatisierten Pipeline wechseln, ohne das kodierte Ergebnis zu ändern.

Erzeugung binärer Fixtures

Erzeugen Sie reproduzierbare gerahmte yEnc-Zeichenketten für Unit-Tests, Golden-Dateien und NNTP- oder Poster-Integrationsprüfungen.

Parser- und CRC-Validierung

Dekodieren Sie verdächtige Payloads, um unvollständige Escapes, size-Abweichungen und CRC-32-Fehler sichtbar zu machen, ohne zu raten.

Welche Modi werden unterstützt?

mode=encode (Standard) wandelt Klartext in gerahmtes yEnc mit =ybegin und =yend um. mode=decode wandelt eine yEnc-Zeichenkette (gerahmt oder nur Körper) zurück in UTF-8-Text.

Vollständige KIT-Dokumentation lesen →