26-stellige Crockford-Base32-Strings, lexikografisch sortierbar nach Millisekunden-Timestamp. Lokal erzeugt – wird nie übertragen.
Was es tut
Erzeugt ULIDs: 26-Zeichen-Bezeichner, die einen Millisekunden-Zeitstempel mit 80 Bit Zufälligkeit paaren. Das Tool füllt sich selbst in dem Moment, in dem es lädt, und würfelt bei jeder Optionsänderung neu, sodass immer ein Ergebnis auf dem Bildschirm steht. Stelle Anzahl von 1 bis 1.000 ein. Ein einzelner Wert erscheint in großer Schrift; ein Stapel erscheint als Liste. Kopieren übernimmt den ganzen Stapel. Alles läuft lokal mit crypto.getRandomValues.
So verwendest du es
- Stelle die Anzahl ein (1 bis 1.000). Die Ergebnisse erzeugen sich neu, während du sie änderst.
- Lies das Ergebnis: ein Wert in großer Schrift, zwei oder mehr als Liste.
- Drücke Kopieren, um den ganzen Stapel zu übernehmen.
- Füge eine beliebige
ULIDULIDA 128-bit identifier like a UUID, but timestamp-prefixed and Crockford-base32 encoded — so it sorts by creation time and is shorter to read.
inULIDULIDA 128-bit identifier like a UUID, but timestamp-prefixed and Crockford-base32 encoded — so it sorts by creation time and is shorter to read.
dekodieren ein, um sie zu untersuchen: Das Tool trennt den Zeitteil von der Zufälligkeit und zeigt den Zeitstempel in Millisekunden und ISO-8601 UTC an. Ungültige Eingabe (falsche Länge, Nicht-Crockford-Zeichen oder ein Zeitteil über der 48-Bit-Obergrenze) zeigt den genauen Grund.
Beispiele
Eine
ULIDULIDA 128-bit identifier like a UUID, but timestamp-prefixed and Crockford-base32 encoded — so it sorts by creation time and is shorter to read.
hat 26 Zeichen. Die Aufteilung ist der ganze Punkt:01ARZ3NDEKTSV4RRFFQ69G5FAV
└──┬──┘└───────┬────────┘
timestamp randomness
(10 chars) (16 chars)
01ARZ3NDEKTSV4RRFFQ69G5FAV- das kanonische Beispiel der Spezifikation01ARZ3NDEK...sortiert vor01ARZ3NDF..., weil 10 Zeichen Zeitstempel den String anführen- Fügt man
01ARZ3NDEKTSV4RRFFQ69G5FAVin den Dekoder ein, liest er den Zeitstempel2016-07-30T23:54:10.259Z- das kanonische Beispiel der Spezifikation wurde am 2016-07-30 geprägt
Wie ULIDs funktionieren
Eine
ULIDULIDA 128-bit identifier like a UUID, but timestamp-prefixed and Crockford-base32 encoded — so it sorts by creation time and is shorter to read.
ist 128 Bit, in zwei Teile geschnitten:| Teil | Bits | Zeichen | Enthält |
|---|---|---|---|
| Zeitstempel | 48 | die ersten 10 | Millisekunden seit der Unix-Epoche |
| Zufälligkeit | 80 | die letzten 16 | zufällige Bits |
Beide Hälften kodieren in Crockford base32: 32 Symbole, 5 Bit pro Zeichen. Das Alphabet ist 0-9, dann A-Z ohne I, L, O, U. Das macht ULIDs unabhängig von Groß-/Kleinschreibung und entfernt die Buchstaben, die Menschen falsch lesen (I als 1, O als 0). 26 Zeichen mal 5 Bit ergibt 130, also bleiben die obersten 2 Bit ungenutzt.
Der Zeitstempel ist das, wofür du zahlst. Er besetzt das bedeutendste Ende des Werts, deshalb entspricht die String-Reihenfolge der Erzeugungsreihenfolge: Sortiere eine Spalte mit ULIDs als einfachen Text und du bekommst die Einfügereihenfolge gratis. Verglichen mit UUIDv4:
| Eigenschaft | ULIDULIDA 128-bit identifier like a UUID, but timestamp-prefixed and Crockford-base32 encoded — so it sorts by creation time and is shorter to read. |
UUIDv4 |
|---|---|---|
| Zeichen | 26 | 36 (mit 4 Bindestrichen) |
| Sortiert nach Erzeugungszeit | ja, lexikografisch | nein - vollkommen zufällige Reihenfolge |
| Zufallsbits | 80 | 122 |
UUIDv4 ist in Ordnung, wenn Bezeichner nur eindeutig sein müssen. Wenn sie zusätzlich sortieren müssen - Datenbankschlüssel, Ereignisprotokolle, alles, was du seitenweise durchblätterst - verwandelt der Zeitstempel-Präfix einen Index-Scan in einen Lesevorgang nach Bereich. Die 48-Bit-Millisekunden-Uhr reicht bis zum Jahr 10889, sie läuft also in der Praxis nicht über.
Dieselbe Millisekunde, verschiedene ULIDs: die 80 zufälligen Bits halten IDs aus demselben Instant auseinander, mit einer Kollisionswahrscheinlichkeit, die so klein ist, dass sie bei normalen Mengen ignoriert wird.
Gut zu wissen
- Sortierbar, nicht geordnet. ULIDs sortieren nach Millisekunde; zwei IDs innerhalb einer Millisekunde haben keine garantierte Reihenfolge.
- Groß-/Kleinschreibung egal.
01arz3ndektsv4rrffq69g5favparst als derselbe Wert wie die Großbuchstaben-Form. - Privat: lokal in deinem Browser erzeugt. Nichts wird irgendwohin gesendet.
- Verwandte Tools:
UUIDUUIDA 128-bit identifier generated to be practically unique without coordination, most commonly in version-4 (fully random) form.
Generator, Token Generator.