T
Tooltastic
Jetzt ausprobieren

ULID Generator

Universally Unique Lexicographically Sortable Identifiers — wie UUIDs, aber zeitlich geordnet und datenbankfreundlicher.

Zeitlich sortierbar Massengeneration 100% Lokal
Anzahl
Zeitstempel (48 Bit) Zufall (80 Bit)
Generierte ULIDs ()

Auf „Generieren" klicken

ULID-Decoder ULID einfügen, um Zeitstempel und Zufallsteil zu dekodieren
Ungültige ULID – muss 26 Crockford-Base32-Zeichen sein
Gültige ULID
Zeitzeichen (1–10)
Zufallszeichen (11–26)
UTC
Unix ms

Was ist eine ULID?

Eine ULID (Universally Unique Lexicographically Sortable Identifier) ist ein 128-Bit-Bezeichner, kodiert als 26-stelliger Crockford-Base32-String. Die ersten 10 Zeichen kodieren einen 48-Bit-Millisekunden-Zeitstempel, die letzten 16 Zeichen enthalten 80 zufällige Bits. ULIDs sind dadurch von Natur aus nach Erstellungszeit sortierbar.

ULID vs. UUID

Im Gegensatz zu UUID v4 sind ULIDs lexikografisch nach Erstellungszeit sortierbar — neuere IDs sortieren immer nach älteren. Das verbessert die B-Tree-Index-Performance in Datenbanken erheblich. ULIDs nutzen außerdem eine kompaktere Base32-Kodierung ohne Bindestriche.

Monotoner Modus

Im monotonen Modus sind ULIDs, die in derselben Millisekunde generiert werden, garantiert in aufsteigender Reihenfolge — der Zufallsteil wird um 1 inkrementiert. Dieser Modus ist kritisch für verteilte Systeme, in denen mehrere IDs innerhalb eines einzelnen Zeitstempels eine strikte Reihenfolge einhalten müssen.

Häufige Fragen

Alles Wichtige über ULIDs

Eine ULID ist ein 128-Bit-Bezeichner, kodiert als 26-stelliger Crockford-Base32-String (z.B. 01ARZ3NDEKTSV4RRFFQ69G5FAV). Die ersten 10 Zeichen stellen einen 48-Bit-Zeitstempel in Millisekunden seit dem Unix-Epoch dar (gültig bis zum Jahr 10889). Die verbleibenden 16 Zeichen sind 80 Bit kryptografisch zufällige Daten. Das ergibt über 1,208 × 10^24 mögliche Werte pro Millisekunde.

Beide sind 128-Bit-Eindeutiger-Bezeichner, aber mit wesentlichen Unterschieden. ULIDs sind lexikografisch nach Generierungszeit sortierbar, was die Datenbankindex-Performance erheblich verbessert. Sie verwenden Crockford-Base32 (keine Bindestriche, Groß-/Kleinschreibungsunabhängig) – 26 Zeichen statt 36 bei UUIDs. UUIDs haben eine leicht höhere Entropie pro Zeichen, sind aber standardmäßig nicht sortierbar. Für die meisten Datenbankszenarien sind ULIDs die bessere Wahl.

Im normalen Modus können ULIDs in derselben Millisekunde möglicherweise nicht korrekt sortieren, da sie unabhängige Zufallsteile haben. Der monotone Modus löst das: Der Zufallsteil wird für jede ULID, die in derselben Millisekunde generiert wird, um 1 inkrementiert und garantiert so eine strikt aufsteigende Reihenfolge. Verwende den monotonen Modus, wenn absolute Sortiergarantien für die Hochdurchsatz-ID-Generierung benötigt werden.

Ja. Die ersten 10 Zeichen einer ULID kodieren einen 48-Bit-Unix-Zeitstempel in Millisekunden. Zum Dekodieren wird jedes Zeichen mit Crockford-Base32 (Alphabet: 0123456789ABCDEFGHJKMNPQRSTVWXYZ) interpretiert und positionell zur Basis 32 multipliziert. Der ULID-Decoder in diesem Tool macht das automatisch und zeigt den genauen Erstellungszeitpunkt in UTC und Lokalzeit an.

Ja, ULIDs sind eine ausgezeichnete Wahl für Primärschlüssel. Ihre lexikografische Sortierbarkeit bedeutet, dass sequenzielle Einfügungen die B-Tree-Lokalität beibehalten – im Gegensatz zu zufälligen UUID v4, die Seitenfragmentierung und Performance-Probleme verursachen. Viele Produktionssysteme verwenden ULIDs als Primärschlüssel in PostgreSQL, MySQL und anderen Datenbanken. Der 80-Bit-Zufallsteil macht Kollisionen selbst bei sehr hohen Generierungsraten praktisch unmöglich.

ULIDs erzeugen – sortierbare eindeutige IDs

Ein ULID Generator erstellt Universally Unique Lexicographically Sortable Identifiers: eindeutige Kennungen, die im Gegensatz zur rein zufälligen UUID einen Zeitstempel enthalten und sich dadurch chronologisch sortieren lassen. Eine ULID besteht aus 48 Bit Zeit und 80 Bit Zufall, ist 26 Zeichen lang und URL-sicher. Das Tool erzeugt sie direkt im Browser und richtet sich an Entwickler, die sortierbare Schlüssel ohne separaten Zeitstempel-Index brauchen.

Typische Anwendungsfälle

  • Sortierbare Datensätze: Nutze ULIDs als Primärschlüssel, deren Reihenfolge bereits die Entstehungszeit widerspiegelt – praktisch für Logs und Events.
  • Verteilte IDs ohne Koordination: Erzeuge in mehreren Diensten kollisionsarme, zeitlich geordnete Kennungen, ohne eine zentrale Sequenz pflegen zu müssen.
  • Lesbare Referenzen: Verwende die kompakte, in Crockford Base32 kodierte Form in URLs oder Dateinamen ohne Sonderzeichen.
  • Dateinamen mit Zeitbezug: Benenne Uploads oder Exporte so, dass sie sich von allein chronologisch sortieren.

So erstellst du eine ULID

  1. 1 Erzeuge mit einem Klick eine neue ULID auf Basis der aktuellen Zeit.
  2. 2 Aktiviere bei Bedarf den monotonen Modus für streng aufsteigende Werte innerhalb derselben Millisekunde.
  3. 3 Nutze den Decoder, um Zeitstempel und Zufallsanteil einer bestehenden ULID anzuzeigen.
  4. 4 Kopiere einzelne Werte oder erzeuge gleich eine ganze Liste.

Warum ULIDs statt UUIDs?

ULIDs vereinen die Eindeutigkeit einer UUID mit der natürlichen Sortierbarkeit eines Zeitstempels. Dadurch lassen sich Datensätze allein anhand des Schlüssels chronologisch ordnen, was Datenbankindizes entlastet. Dieses Tool zeigt zusätzlich die Anatomie jeder ID und unterstützt den monotonen Modus sowie die Massengeneration. Wenn du keine zeitliche Ordnung brauchst und maximale Zufälligkeit bevorzugst, ist der UUID Generator die passende Alternative. Da der Zeitanteil offen sichtbar ist, solltest du ULIDs nicht dort verwenden, wo der Erstellungszeitpunkt geheim bleiben muss.

Kostenlose Tools, die gut dazu passen – direkt im Browser, ohne Anmeldung.