Zum Inhalt springen

ULID- und NanoID-Generator

ULID & NanoID Generator

Erzeugt sortierbare ULIDs oder kurze NanoIDs mit gewähltem Alphabet und Länge und zeigt die Kollisionswahrscheinlichkeit.

Erzeugt ULIDs und NanoIDs – die beiden Kurz-ID-Formate, zu denen man greift, wenn eine 36 Zeichen lange UUID für eine URL zu lang ist. Es zeigt auch die Kollisionsrechnung für die gewählte Länge und das gewählte Alphabet, den Teil, der entscheidet, ob die ID kurz genug oder zu kurz ist.

🔒 Läuft vollständig in Ihrem Browserulidnanoidgeneratorid
Art

26 Zeichen, sortierbar, mit einem Millisekunden-Zeitstempel in den ersten zehn.

Wie viele

0 IDs

    Wie wahrscheinlich ist eine Kollision

    Entropie

    80,0 Bit

    IDs bis zu 1 % Wahrscheinlichkeit

    1,56e11

    Bei 1.000 pro Stunde

    18 Tausend Jahre

    Die Geburtstagsschranke: P ≈ 1 − exp(−n²/2N). Die Zahl darunter ist der Punkt, an dem das ein Prozent erreicht.

    Eine ULID zerlegen

    ULIDs folgen der ULID-Spezifikation: 48 Bit Millisekunden-Zeitstempel, dann 80 Zufallsbits, in Crockfords Base32 – das I, L, O und U auslässt, damit sich niemand beim Vorlesen vertut.

    So funktioniert es

    1. Wählen Sie ULID oder NanoID

      Eine ULID hat feste 26 Zeichen mit einem Millisekunden-Zeitstempel in den ersten zehn, sie sortiert also. Eine NanoID hat beliebige Länge über beliebigem Alphabet und ist reine Entropie – nichts an ihr ist geordnet.

    2. Legen Sie Länge und Alphabet fest

      Für NanoID sind es standardmäßig 21 Zeichen über 64 Symbolen. Eine kürzere ID oder ein kleineres Alphabet – etwa ein Satz ohne verwechselbare Zeichen für etwas, das vorgelesen wird – kostet Entropie, und das Panel darunter zeigt genau, wie viel.

    3. Lesen Sie die Kollisionszeile

      Sie nennt die Zahl der IDs bis zu einer einprozentigen Wahrscheinlichkeit irgendeiner Kollision, und wie lange das bei tausend pro Tag dauert. Unter 64 Bits Entropie sagt die Seite das, denn das ist die Grenze zwischen einem URL-Slug und etwas, das nicht erratbar sein darf.

    4. Dekodieren Sie eine ULID, wenn Sie eine haben

      Fügen Sie sie ein, und das Panel gibt die Erstellungszeit und den zufälligen Rest aus – nützlich, um herauszufinden, wann ein Datensatz tatsächlich angelegt wurde.

    Häufige Fragen

    Ist eine kurze ID als geheimer Link sicher?

    Nur wenn ihre Entropie das hergibt. Eine 21 Zeichen lange NanoID hat etwa 126 Bits und ist in Ordnung; eine 10 Zeichen lange hat rund 60 und ist für jeden erratbar, der bereit ist, Geld auszugeben. Die Seite markiert alles unter 64 Bits aus genau diesem Grund – eine kurze ID ist eine kurze ID, kein Geheimnis.

    Warum ist ein eigenes Alphabet trotzdem gleichverteilt?

    Weil Symbole per Rejection Sampling gezogen werden und nicht mit `random % length`. Die Modulo-Abkürzung verzerrt jedes Alphabet, dessen Länge 256 nicht teilt – der übliche Bug in selbst gebauten ID-Generatoren, unsichtbar, bis jemand zählt.

    Was bewirkt Monoton bei einer ULID?

    Innerhalb einer einzelnen Millisekunde stehen einfache ULIDs zueinander in zufälliger Reihenfolge. Der monotone Modus erhöht das Zufallsfeld, statt es neu zu ziehen, sodass ein Schub, der in derselben Millisekunde erzeugt wurde, trotzdem in Erstellungsreihenfolge sortiert.

    Warum verwendet eine ULID Base32 ohne I, L, O und U?

    Das ist Crockfords Alphabet: Es lässt die Zeichen weg, die verwechselt werden, wenn ein Mensch eine ID vorliest oder von einem Bildschirm abschreibt. Der Preis sind 32 Symbole statt 36, weshalb eine ULID 26 Zeichen braucht, wo eine NanoID 21 braucht.

    Eingabe aus

    Danach

    Diese Tools nehmen an, was dieses hier erzeugt, das Ergebnis kann also direkt weiter.