z-base-32 Encoder & Decoder
„Hello“ wird in z-base-32 zu jb1sa5dx: Zookos Base32-Alphabet lässt 0, 2, l und v weg und hängt keine Füllzeichen an, damit Codes kurz bleiben und sich leicht vorlesen oder von Hand abschreiben lassen. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Text
- Hello
- Berechnungsmodus
- Encode
- Ergebnis
- jb1sa5dx
- Länge
- 8
- Eingabe-Bytes
- 5
- Alphabet
- z-base-32
z-base-32 ist die menschenorientierte Base32-Variante von Zooko Wilcox-O'Hearn: ein sorgfältig permutiertes Zweiunddreißig-Symbol-Alphabet, das Lesen, Schreiben und gesprochene Transkription erleichtert und dennoch fünf Bits pro Zeichen packt. Anders als RFC-4648-Base32 entfernt es verwirrende Doppelgänger, ordnet Symbole so um, dass gängige Laute häufiger vorkommen, und lässt das Gleichheitszeichen-Padding weg, damit Tokens kurz bleiben. Diese Fähigkeit wandelt UTF-8-Text in kleingeschriebenes z-base-32 um oder stellt den Originaltext aus einer z-base-32-Zeichenkette wieder her.
Wie z-base-32 Bits mit Zookos Alphabet packt
z-base-32 startet von derselben Idee mit fünf Bits pro Zeichen wie klassisches Base32, aber die Symboltabelle ist völlig anders. Die zweiunddreißig Zeichen sind y b n d r f g 8 e j k m c p q x o t 1 u w i s z a 3 4 5 h 7 6 9 in dieser Reihenfolge. Die Ziffern Null und Zwei, der Buchstabe L und der Buchstabe V entfallen, weil sie leicht mit anderen Glyphen verwechselt werden, wenn jemand einen Code vorliest oder von Hand abschreibt.
Die übrigen Symbole sind so geordnet, dass Vokale und häufige Konsonanten eher früher im Werteraum erscheinen, was Zufallszeichenketten etwas aussprechbarer macht. Die Kodierung behandelt Ihre Eingabe als UTF-8-Bytes, liest sie als kontinuierlichen Bitstrom und gibt für je fünf Bits ein Alphabetzeichen aus. Verbleibende Bits am Ende werden rechts mit Nullen aufgefüllt, um ein letztes Quintett zu bilden; Gleichheitszeichen werden nicht angehängt.
Die Dekodierung kehrt die Abbildung um: Jedes Symbol liefert fünf Bits, vollständige Bytes werden ausgegeben, sobald acht Bits anliegen, und restliche Padding-Bits, die kein vollständiges Byte bilden, werden verworfen. Leerzeichen werden ignoriert, damit mehrzeilige Einfügungen funktionieren, und Großbuchstaben werden vor dem Lookup kleingeschrieben.
Was Sie senden und was Sie zurückerhalten
Senden Sie ein Pflicht-Stringfeld namens text und optional mode mit encode oder decode. Fehlt mode, ist encode der Standard, sodass eine minimale Nutzlast weiterhin sinnvoll ist. Der Encode-Modus behandelt text als reinen UTF-8-Inhalt und liefert eine kleingeschriebene result-Zeichenkette im Zooko-Alphabet ohne Padding.
Der Decode-Modus behandelt text als z-base-32, normalisiert Großschreibung und Leerzeichen, prüft jedes Symbol und gibt die wiederhergestellte UTF-8-Zeichenkette in result zurück. Beide Richtungen spiegeln mode, den Original-text, result, ein length-Feld der Hauptausgabe, alphabet- und charset-Labels, ein padding-Flag auf false und einen kurzen Standardverweis wider, damit Clients das Profil prüfen können. Validierungsfehler verbrauchen kein vorausbezahltes Guthaben.
Typische Prüfungen sind das Kodieren eines kurzen Worts wie Hello, das Dekodieren des Roundtrips zum gleichen Text und das Erzwingen eines Fehlers durch Einfügen eines Symbols, das z-base-32 bewusst ausschließt, etwa Null oder den Buchstaben L.
Wo z-base-32 in der Praxis vorkommt
Menschenzugewandte Kennungen, die am Telefon vorgelesen, auf Papier notiert oder von einem Screenshot abgetippt werden müssen, profitieren von einem Alphabet ohne mehrdeutige Glyphen. z-base-32 wurde genau dafür entworfen: Open-Source-Systeme wie Mnet und Tahoe-LAFS sowie Protokolle wie ZRTP übernahmen es, damit Nutzer kompakte Codes tauschen können, ohne die Null-gegen-O- und Eins-gegen-I-Fallen dichterer Alphabete. Produktteams, die Offline-Wiederherstellungsphrasen, kurze air-gapped Auth-Codes oder Support-Einmal-Tokens bauen, bevorzugen oft Zookos Tabelle, wenn die Zeichenkette gesprochen oder transkribiert statt nur maschinell gescannt wird.
Engineering-Gruppen, die Interop-Tests schreiben, brauchen eine einzige Ground Truth für Encode und Decode, die zu ihren Bibliotheken passt und illegale Zeichen nie stillschweigend ersetzt. Lehrende, die Kodierungsschemata vermitteln, wollen eine eigene Landing für z-base-32 statt es unter RFC-4648-Base32 zu verstecken, weil nach Zooko, humanem Base32 und paddingfreien Tokens als getrennte Absichten gesucht wird. Support-Mitarbeiter, die mehrzeilige Codes aus dem Chat einfügen, brauchen Leerzeichen-Toleranz ohne Müllsymbole, die einen falschen Schlüssel ergeben würden.
Wenn Sie klassisches RFC-4648-Base32 mit A-Z und Zwei bis Sieben, Base64 oder Crockford-Base32 brauchen, behandeln Sie diese als getrennte Landings statt diese z-base-32-Encoder-Seite zu überladen.
Anwendungsfälle
Gesprochene und handschriftliche Wiederherstellungscodes
Kodieren Sie kurze Geheimnisse als z-base-32, damit Nutzer sie vorlesen oder notieren können, ohne Null, L, V oder Zwei mit ähnlichen Glyphen zu verwechseln.
Menschenfreundliche Offline-Tokens
Erzeugen Sie kompakte, paddingfreie Kennungen für air-gapped Authentifizierung, Support-Einmalcodes oder Produkt-URLs, die von Hand getippt werden.
Häufige Fragen
Welches Alphabet verwendet z-base-32?
Zookos permutiertes Alphabet ybndrfg8ejkmcpqxot1uwisza345h769. Es schließt 0, l, v und 2 aus und nutzt kein '='-Padding.
Worin unterscheidet es sich von RFC-4648-Base32?
RFC 4648 nutzt A-Z und 2-7 mit optionalem Gleichheits-Padding. z-base-32 hat eine andere Symbolreihenfolge, entfernt mehrdeutige Zeichen und lässt Padding weg. Sie sind nicht austauschbar.
Kann ich sowohl kodieren als auch dekodieren?
Ja. Setzen Sie mode auf encode (Standard), um reinen UTF-8-Text in z-base-32 zu wandeln, oder mode auf decode, um Text aus einer z-base-32-Zeichenkette wiederherzustellen.
Was passiert bei einem ungültigen Zeichen in der Zeichenkette?
Symbole außerhalb des Zooko-Alphabets werden nie ersetzt. Validierungsfehler werden nicht berechnet.
Was kostet der z-base-32-Encoder?
Im Browser kodieren und dekodieren Sie z-base-32 kostenlos lokal.
Verwandte Tools
Für Entwickler — API-Zugang
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.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/enc/base32-zbase \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello"}'const res = await fetch("https://api.kit.forhosting.com/enc/base32-zbase", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base32-zbase",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base32-zbase", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base32-zbase", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "Hello"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base32_zbase",
"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.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Der Kodierungsmodus packt Ihre Bytes in das Alphabet ybndrfg8ejkmcpqxot1uwisza345h769; der Dekodierungsmodus vereinheitlicht die Großschreibung, entfernt Leerzeichen und lehnt jedes illegale Symbol mit einem klaren invalid_input-Fehler ab, damit ein Tippfehler nie stillschweigend zur falschen Nutzlast wird.
Wie z-base-32 Bits mit Zookos Alphabet packt
Ein Zeichen außerhalb des Alphabets löst invalid_input mit Position und störendem Symbol aus — die richtige Fehlerart für Tokens, die Menschen unter Zeitdruck tippen. Der Pfad ist reines ganzzahliges Bit-Packing ohne Netz, ohne Zufallskeime und ohne Zeitstempel, sodass identische Eingaben immer identisches JSON erzeugen. Diese Seite ist absichtlich weder RFC-4648-Base32 noch Crockford-Base32; jene Alphabete und Padding-Regeln sind andere Suchabsichten mit anderen Interop-Zielen.
Was Sie senden und was Sie zurückerhalten
Encode meldet außerdem input_bytes; Decode meldet output_bytes. Fehlender text, Nicht-String-Objekte, ununterstützte mode-Werte, Zeichenketten über dem dokumentierten Maximum, illegale Alphabetzeichen oder dekodierte Bytes, die kein gültiges UTF-8 sind, scheitern mit invalid_input und einer klaren englischen Meldung. Der Preis erfolgreicher API-Aufrufe ist die veröffentlichte Basis von $0.002 pro Element.
Wo z-base-32 in der Praxis vorkommt
Weil diese Fähigkeit ein reiner Parse-Motor ist, beträgt der API-Preis die veröffentlichte Basis von $0.002 pro erfolgreichem Element und fehlgeschlagene Validierung wird nicht berechnet.
Integrationsbeispiele
Interop-Fixtures für Zooko-Bibliotheken
Erzeugen Sie Encode- und Decode-Golden-Vektoren, die zu z-base-32-Bibliotheken in ZRTP, Tahoe-ähnlichen Systemen und verwandten Open-Source-Werkzeugen passen.