Base16-RFC-4648-Encoder & -Decoder
Kodieren Sie Text als Base16 nach RFC 4648, dem standardisierten Hex in Großbuchstaben, bei dem jedes Byte zwei Zeichen ergibt: Aus Hello wird 48656C6C6F. Beim Dekodieren werden Auszüge mit Leerzeichen oder Doppelpunkten akzeptiert, Fehlerhaftes abgelehnt. 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
- 48656C6C6F
- Eingabe
- Hello
- Base 16
- 48656C6C6F
- Hexadezimal
- 48656C6C6F
RFC 4648 Base16 ist die standardisierte Hexadezimalkodierung in Großbuchstaben: Jedes Eingabebyte wird zu genau zwei Zeichen aus dem Alphabet 0-9 und A-F, ohne Füllzeichen und ohne mehrdeutige Glyphen. Dieses Werkzeug kodiert reinen UTF-8-Text in diese kanonische Base16-Form und dekodiert Base16-Hex-Strings zurück zu Text, sodass Sie in beide Richtungen einfügen können, ohne eine Krypto-Bibliothek zu installieren. Die Kodierung gibt stets Großbuchstaben aus, wie der Standard es verlangt; die Dekodierung akzeptiert übliches Einfüge-Rauschen wie Leerzeichen, Doppelpunkte und gemischte Groß- und Kleinschreibung und normalisiert und validiert dann vor der Umwandlung.
Was RFC 4648 Base16 ist und wie das Alphabet funktioniert
Base16 ist in RFC 4648 als Binär-zu-Text-Kodierung definiert, die jedes Acht-Bit-Oktett auf zwei Symbole eines Alphabets aus sechzehn Zeichen abbildet: die Dezimalziffern null bis neun gefolgt von den lateinischen Großbuchstaben A bis F. Dieses Alphabet ist identisch mit der vertrauten Hexadezimalschreibweise in Großbuchstaben aus Protokolldokumenten, Paketmitschnitten und vielen Hardware-Handbüchern. Die Kodierung durchläuft die Eingabe von links nach rechts, teilt jedes Byte in ein hohes und ein niedriges Nibble und bildet jedes Nibble auf ein Alphabetzeichen ab, wodurch ein String entsteht, dessen Länge immer das Doppelte der Byteanzahl beträgt.
Es gibt kein Füllzeichen und keine Zeilenumbruchregel in der Kernkodierung; Verbraucher, die Zeilenumbrüche oder Trennzeichen brauchen, fügen sie nur zur Anzeige hinzu. Die Dekodierung kehrt die Abbildung um: Jeweils zwei aufeinanderfolgende Hex-Ziffern werden zu einem Byte. Implementierungen, die RFC-4648-Konformität beanspruchen, kodieren mit Großbuchstaben A–F; viele Decoder akzeptieren auch Kleinbuchstaben a–f für die Interoperabilität mit Werkzeugen, die gemischte Schreibweise ausgeben.
Leerzeichen und dekorative Trennzeichen wie Doppelpunkte, Unterstriche oder Bindestriche tauchen oft in manuell bearbeiteten Dumps auf und sollten vor den Längen- und Alphabetprüfungen entfernt werden; der verbleibende durchgehende String muss eine gerade Länge haben. Wenn ein Zeichen außerhalb von 0-9A-Fa-f erscheint oder die Ziffernzahl ungerade ist, muss der Decoder laut fehlschlagen.
Praktische Tipps, Grenzen und Unterschiede zu anderen Kodierungen
Bevorzugen Sie encode, wenn Sie von lesbarem Text oder kurzen UTF-8-Nutzlasten ausgehen, die Sie als kanonischen Hex-Dump in Großbuchstaben für Spezifikationen, Tickets oder Unit-Tests brauchen. Round-Trip-Prüfungen sind der schnellste Smoke-Test: Kodieren Sie ein bekanntes Wort wie Hello, bestätigen Sie das klassische Ergebnis in Großbuchstaben 48656C6C6F, dekodieren Sie dann diesen String und bestätigen Sie, dass Sie die ursprüngliche Phrase Byte für Byte zurückerhalten. Halten Sie Nutzlasten unter dem veröffentlichten Zeichenlimit; Dumps von mehreren Megabyte gehören offline oder in dedizierte Binärwerkzeuge.
Dieses Werkzeug ist nicht Base64 oder Base64URL — jene Alphabete verwenden vierundsechzig Symbole mit Füllzeichen und dichterer Packung. Es ist auch nicht Base58, das mehrdeutige Glyphen für die menschliche Übertragung weglässt. Und es ist kein Basis-Konverter für Ganzzahlen oder Floats: Um eine einzelne Hex-Zahl in Dezimal oder Binär umzuwandeln, nutzen Sie die dedizierten Zahlenformat-Fähigkeiten, statt die Ziffern als opake Bytefolge zu behandeln.
Bevorzugen Sie Base16, wenn Sie einen 1:1 nibble-sichtbaren Dump brauchen, der zu RFC 4648 und zum Lehrbuch-Hex passt; bevorzugen Sie Base64, wenn Dichte wichtiger ist als Lesbarkeit. Zeigen Sie im Unterricht denselben Satz in Base16 und Base64 nebeneinander kodiert, damit Lernende sehen, warum Hex länger und immer von gerader Länge ist und warum A–F in Großbuchstaben die standardisierte Form in RFC 4648 Tabelle 5 ist.
Anwendungsfälle
Debugging eingefügter Logs und Paketmitschnitte
Fügen Sie Hex-Dumps mit Leerzeichen oder Doppelpunkten ein, dekodieren Sie sie zu lesbarem Text, wenn die Nutzlast UTF-8 ist, oder kodieren Sie nach Bearbeitungen erneut für Round-Trip-Prüfungen.
RFC 4648 und Hexadezimalschreibweise lehren
Im Unterricht wird Hello zu 48656C6C6F kodiert, das Alphabet 0-9A-F untersucht und dann ungerade Länge oder ungültige Zeichen erzwungen, um die strikte Validierung zu zeigen.
Häufige Fragen
Welches Alphabet verwendet dieser Base16-Encoder?
Das Base16-Alphabet aus RFC 4648: 0123456789ABCDEF. Die Kodierung erzeugt stets A–F in Großbuchstaben; die Dekodierung akzeptiert auch a–f in Kleinbuchstaben und übliche Trennzeichen.
Ist Base16 dasselbe wie Base64?
Nein. Base16 bildet jedes Byte auf zwei Hex-Ziffern eines Alphabets aus sechzehn Symbolen ab. Base64 verwendet vierundsechzig Symbole, dichtere Packung und optionale Füllzeichen.
Wandelt dies große Hex-Ganzzahlen in Dezimal um?
Nein. Es behandelt die Eingabe als opake Bytefolge nach RFC 4648 Base16, nicht als eine einzelne Ganzzahl beliebiger Präzision. Nutzen Sie die Zahlenformat-Werkzeuge für Hex-zu-Dezimal ganzer Zahlen.
Kann ich Hex mit Leerzeichen, Doppelpunkten oder Kleinbuchstaben dekodieren?
Ja. Leerzeichen, Doppelpunkte, Unterstriche und Bindestriche werden entfernt, Kleinbuchstaben a bis f werden akzeptiert, sodass ein aus einem Protokoll kopierter Auszug direkt funktioniert. Übrig bleiben muss eine gerade Anzahl von Hex-Ziffern.
Was passiert bei einer ungeraden Zahl von Hex-Ziffern?
Die Eingabe wird mit einer klaren Meldung abgelehnt, statt still verfälscht zu werden. Dasselbe gilt für Zeichen außerhalb von 0 bis 9 und A bis F sowie für Bytes, die keinen gültigen UTF-8-Text ergeben.
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/base16-rfc4648 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello"}'const res = await fetch("https://api.kit.forhosting.com/enc/base16-rfc4648", {
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/base16-rfc4648",
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/base16-rfc4648", 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/base16-rfc4648", 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.base16_rfc4648",
"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.
Limits
max_chars | 100000 |
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
Fehlerhafte Eingaben — eine ungerade Anzahl von Hex-Ziffern, ein Zeichen außerhalb des Alphabets oder Bytes, die kein gültiges UTF-8 sind — liefern einen klaren invalid_input-Fehler statt stiller Korruption.
So rufen Sie die API auf und was die Antwort enthält
Der Standardmodus ist encode: Die UTF-8-Bytes von text werden zu einem Base16-String in Großbuchstaben nach dem RFC-4648-Alphabet. Der Modus decode behandelt text als Base16-Nutzlast — optional mit Leerzeichen oder Doppelpunkt-Trennzeichen und gemischter Schreibweise — und liefert nach der Normalisierung den wiederhergestellten UTF-8-String. Senden Sie einen JSON-Body mit dem Pflicht-String-Feld text (Aliase input, value und data) und einem optionalen mode, der encode oder decode ist. Die Eingabelänge ist auf hunderttausend Zeichen begrenzt, damit eine einzelne Anfrage den Worker-Speicher mit pathologischen Dumps nicht erschöpft. Bei Erfolg mit encode enthält die Antwort mode, input, result sowie base16 und hex mit demselben kodierten String, alphabet mit der Sechzehn-Zeichen-Konstante 0123456789ABCDEF, alphabet_name mit dem Wert rfc4648_base16, standard mit RFC 4648 Base16, input_bytes als UTF-8-Byteanzahl, output_length als Anzahl der kodierten Zeichen und eine kurze englische Meldung. Bei Erfolg mit decode enthält die Antwort mode, input, result und text mit dem dekodierten UTF-8-String, base16_normalized mit der durchgehenden Großbuchstabenform, dieselben Felder alphabet und standard, input_length, output_bytes und eine passende Meldung. Eine fehlgeschlagene Validierung — fehlendes text, text als Nicht-String, überlange Eingabe, ein unbekannter mode, eine ungerade Hex-Länge, ein ungültiges Base16-Zeichen oder dekodierte Bytes, die kein gültiges UTF-8 sind — liefert invalid_input und wird nie berechnet. Der Preis ist ein Pauschalbetrag von $0.002 pro erfolgreicher Anfrage mit der Einheit item und einem marginalen Stückpreis von null.
Praktische Tipps, Grenzen und Unterschiede zu anderen Kodierungen
Senden Sie absichtlich einen Hex-String ungerader Länge oder eine Nicht-Hex-Glyphe wie G oder Z in einer decode-Anfrage, um sicherzustellen, dass Ihr Client invalid_input und die Fehlermeldung mit der genannten Regel verarbeitet. Fehlgeschlagene Aufgaben, die invalid_input zurückgeben, verbrauchen kein Prepaid-Guthaben, was explorative Skripte günstig hält, wenn Sie fehlerhaftes Hex testen.
Integrationsbeispiele
Protokoll- und Fixture-Hex-Dumps in Tests
Erzeugen Sie kanonisches Base16 in Großbuchstaben aus Fixture-Text und prüfen Sie, dass decode dieselben UTF-8-Bytes in CI ohne Krypto-Abhängigkeit wiederherstellt.
Technische Fragen
Was passiert, wenn ich einen Hex-String ungerader Länge oder ein Nicht-Hex-Zeichen dekodiere?
Die API liefert invalid_input, erklärt die ungerade Länge oder nennt das fehlerhafte Zeichen und seinen Index, und erinnert daran, dass Base16 eine gerade Anzahl von 0-9A-F-Ziffern braucht. Fehlgeschlagene Aufgaben werden nicht berechnet.
Ist der Base16-Encoder kostenlos?
Das Browser-Werkzeug ist kostenlos und läuft lokal. API-Aufrufe nutzen Prepaid-KIT-Guthaben zu $0.002 pro erfolgreicher Anfrage; invalid_input-Fehler werden nie berechnet.