Base62-Encoder und -Decoder

Wandeln Sie Text, Hex-Bytes oder Dateien in Base62 um und zurück. Die Ausgabe enthält nur Ziffern und Buchstaben und lässt sich daher ohne Maskierung in URLs, Dateinamen und Kennungen verwenden.

Läuft vollständig in Ihrem Browser. Es wird nichts hochgeladen.

Anleitung

  1. Wählen Sie „Kodieren“, um Text in Base62 umzuwandeln, oder „Dekodieren“, um Base62 wieder in Text zurückzuverwandeln.
  2. Wählen Sie unter „Alphabet“ die Reihenfolge, die zu Ihrem System passt: 0-9 A-Z a-z (voreingestellt) oder 0-9 a-z A-Z.
  3. Geben Sie Ihre Eingabe ein, fügen Sie sie ein oder öffnen Sie mit „Datei öffnen“ eine kleine Datei (bis etwa 20 KB).
  4. Kopieren Sie das Ergebnis oder laden Sie es als Datei herunter.

Was ist Base62?

Base62 verwendet die zehn Ziffern, die 26 Großbuchstaben und die 26 Kleinbuchstaben. Es ist das größte Alphabet, das nur aus Buchstaben und Ziffern besteht, sodass das Ergebnis in URLs, Dateinamen, Datenbankschlüsseln oder Bezeichnern im Code keine Maskierung benötigt. Jedes Zeichen trägt etwa 5,95 Bit, wodurch die Ausgabe etwa 1,34-mal so groß ist wie die Eingabe. Damit ist Base62 fast so kompakt wie Base64, kommt aber ohne +, /, =, - oder _ aus.

Da 62 keine Zweierpotenz ist, behandelt dieses Tool die gesamte Eingabe als eine große Zahl und wandelt sie zur Basis 62 um, wie bei Base58 und Base36. Jedes führende Nullbyte wird als führende 0 geschrieben, damit es beim Hin- und Rückweg erhalten bleibt. Die Eingabe ist auf etwa 20 KB begrenzt, weil die Berechnung bei großen Datenmengen langsam wird.

Es gibt keinen einheitlichen Base62-Standard

Anders als für Base64 gibt es für Base62 keinen RFC, und die Implementierungen unterscheiden sich so, dass ihre Ausgaben nicht miteinander kompatibel sind:

  • Alphabetreihenfolge. Dieses Tool bietet 0-9A-Za-z (voreingestellt) und 0-9a-zA-Z. Manche anderen Bibliotheken stellen die Buchstaben vor die Ziffern.
  • Führende Nullen. Manche Implementierungen behalten wie dieses Tool eine 0 pro führendem Nullbyte bei, andere verwerfen sie, und Formate mit fester Länge füllen das Ergebnis auf eine bestimmte Breite auf.
  • Was kodiert wird. Viele Base62-Funktionen kodieren eine Ganzzahl, etwa eine Datenbank-ID, statt einer Bytefolge. Andere teilen die Daten in Blöcke fester Größe auf.

Wenn ein String aus einem anderen System hier nur Zeichensalat ergibt, probieren Sie die andere Option unter „Alphabet“. Schlägt es weiterhin fehl, verwendet das System vermutlich ein anderes Verfahren.

Wo Base62 verwendet wird

URL-Kürzer wandeln eine fortlaufende ID in einen kurzen Code um: Sieben Base62-Zeichen decken mehr als 3,5 Billionen Werte ab. Sortierbare IDs wie KSUID verwenden eine feste Base62-Form mit 27 Zeichen, und viele Dienste setzen Base62 für API-Schlüssel und Tokens ein, weil ein Doppelklick den ganzen String markiert und er sich überall einfügen lässt. Um eine einzelne Ganzzahl umzuwandeln, verwenden Sie den Zahlensystem-Umrechner oder ein paar Zeilen Code:

// JavaScript: Ganzzahl (BigInt) in Base62
const A = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
function toBase62(n) {
  let s = '';
  do { s = A[Number(n % 62n)] + s; n /= 62n; } while (n > 0n);
  return s;
}
toBase62(123456789n);   // '8M0kX'

Spezifikation

Alphabet0-9 A-Z a-z
AusgabegrößeEtwa 134 % (Großzahl-Umrechnung)
AuffüllungKeine
StandardKein formaler Standard
Groß-/Kleinschreibung relevantJa

Beispiele

Eingabe (UTF-8)Ausgabe
Hello, World!1wJfrzvdbtXUOlUjUf
Base64.isNWxjrFq4r3rv
你好19PqtKE1t

Häufig gestellte Fragen

Ist Base62 URL-sicher?
Ja. Es verwendet nur A-Z, a-z und 0-9, die in URLs nie maskiert werden müssen. Base64URL ist ebenfalls URL-sicher, enthält aber die Zeichen - und _.
Warum wird mein Base62-String zu falschem Text dekodiert?

Base62-Implementierungen unterscheiden sich in Alphabetreihenfolge und Verfahren. Wechseln Sie zwischen den Alphabeten 0-9A-Za-z und 0-9a-zA-Z. Funktioniert keines davon, wurde der String vermutlich aus einer Ganzzahl oder mit einem anderen Algorithmus erzeugt.

Unterscheidet Base62 zwischen Groß- und Kleinschreibung?

Ja. Groß- und Kleinbuchstaben stehen für unterschiedliche Werte, daher darf ein Base62-String niemals in Groß- oder Kleinbuchstaben umgewandelt werden.

Sollte ich Base62 oder Base58 verwenden?
Base58 lässt 0, O, I und l weg, damit sie beim Abschreiben von Hand nicht verwechselt werden. Base62 behält alle Buchstaben und Ziffern und ist etwas kürzer. Wählen Sie Base58 für Strings, die Menschen eintippen, und Base62 für Strings, die Maschinen verarbeiten.