ULID-Generator

ULID-Generator: sortierbare IDs aus Zeitstempel und Zufall als 26 Zeichen in Crockford Base32 erzeugen, eine ULID dekodieren und die ULID in UUID-Schreibweise umwandeln.

Erzeugte ULIDs
ULID dekodieren
–

 

EigenschaftWert

Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.

So ist eine ULID aufgebaut

Eine ULID (Universally Unique Lexicographically Sortable Identifier) ist eine 128 Bit lange, sortierbare ID: Die ersten 48 Bit sind die Unix-Zeit in Millisekunden, die übrigen 80 Bit Zufall. Geschrieben wird sie als 26 Zeichen in Crockford Base32, einem Alphabet aus den Ziffern 0–9 und den Großbuchstaben ohne I, L, O und U. Die ersten 10 Zeichen kodieren die Zeit, die letzten 16 den Zufall. Weil die Zeit vorne steht, ergibt alphabetisches Sortieren die zeitliche Reihenfolge.

Im monotonen Modus erhöht der Generator den Zufallsteil um eins, wenn mehrere ULIDs in derselben Millisekunde entstehen, so wie es die Spezifikation vorsieht. Beim ULID dekodieren liest das Werkzeug Zeitpunkt und Zufallsteil aus. Groß- und Kleinschreibung spielt keine Rolle, verwechselbare Zeichen (I und L als 1, O als 0) werden korrigiert.

ULID in UUID: Beide Formate sind 128 Bit lang, daher lässt sich jede ULID verlustfrei als UUID schreiben und etwa in einer UUID-Spalte speichern; umgekehrt wandelt das Feld oben auch eine UUID in ULID-Schreibweise um. Eine so umgewandelte ULID ist aber keine standardkonforme UUID v7, weil die Versions- und Variantenbits nicht gesetzt sind. Die ULID-Spezifikation ist ein Community-Standard und kein RFC; wer einen offiziellen Standard braucht, nimmt den UUID-Generator mit Version 7.

Anleitung: ULID-Generator in 4 Schritten

  1. Die Anzahl zwischen 1 und 1.000 festlegen.
  2. „Monoton (streng aufsteigend)“ einschalten, wenn IDs derselben Millisekunde streng sortiert sein sollen, und bei Bedarf Kleinbuchstaben wählen.
  3. Mit „Neu erzeugen“ die Liste erstellen und die erzeugten ULIDs kopieren.
  4. Zum Dekodieren eine ULID oder UUID in das untere Feld einfügen und Zeitpunkt, Zufallsteil und UUID-Schreibweise ablesen.

Typische Anwendungsfälle

  • Primärschlüssel für Tabellen, deren Einträge nach Erstellungszeit sortiert vorliegen sollen.
  • Kurze, URL-taugliche IDs für Bestellungen oder Dateien, die sich trotzdem zeitlich sortieren lassen.
  • Fehlersuche: aus einer ULID im Log ablesen, wann der Datensatz entstanden ist.
  • Migration: ULIDs in UUID-Schreibweise umwandeln, um sie in einer UUID-Spalte zu speichern.
Fragen

Häufige Fragen

ULID oder UUID v7: Was soll ich nehmen?

Beide sind zeitlich sortierbar und 128 Bit lang. UUID v7 ist seit RFC 9562 ein offizieller Standard und passt direkt in UUID-Datentypen. ULID ist kürzer lesbar (26 statt 36 Zeichen) und gut für URLs geeignet.

Kann ich eine ULID in einer UUID-Spalte speichern?

Ja. Die 128 Bit werden einfach als UUID geschrieben, das Werkzeug zeigt diese Form an. Beim Auslesen wandeln Sie sie zurück in Base32.

Warum fehlen I, L, O und U im Alphabet?

Crockford Base32 lässt I, L und O weg, weil sie leicht mit 1 und 0 verwechselt werden. U fehlt, damit nicht versehentlich anstößige englische Wörter entstehen.

Verrät eine ULID etwas über mich?

Sie enthält den Zeitpunkt der Erzeugung auf die Millisekunde genau, aber keine Geräte- oder Netzwerkdaten. Wenn der Zeitpunkt geheim bleiben soll, ist eine zufällige UUID v4 besser.

Wie erzeuge ich eine ULID in JavaScript oder Python?

Mit einer Bibliothek: in JavaScript etwa mit dem npm-Paket ulid und der Funktion ulid(), in Python mit dem Paket python-ulid und ULID(). Für Tests und einzelne IDs reicht dieses Werkzeug.

Sind ULIDs garantiert eindeutig?

Praktisch ja: Innerhalb derselben Millisekunde stehen 80 Bit Zufall zur Verfügung, rund 1,2 Quadrillionen Möglichkeiten. Kollisionen sind damit äußerst unwahrscheinlich, mathematisch ausgeschlossen sind sie aber nicht.

Weitere Werkzeuge

Das könnte auch helfen

Alle 358 Werkzeuge