Snowflake ID Generator & Decoder

Erzeuge und dekodiere 64-Bit-Snowflake-IDs mit Twitter- oder Discord-Epochen, direkt in deinem Browser. Nichts, was du eingibst, verlässt dein Gerät.

Der Snowflake ID Generator läuft vollständig in deinem Browser. Die IDs, Zeitstempel und Feldwerte, die du eingibst oder dekodierst, verlassen niemals dein Gerät und nichts wird zu ArrayKit hochgeladen.

ULID Generator öffnen

Über Snowflake ID Generator

Der Snowflake ID Generator baut 64-Bit-Snowflake-IDs so, wie Twitter und Discord es tun: ein Millisekunden-Zeitstempel, eine Worker-ID, eine Prozess-ID und eine Sequenz pro Millisekunde, gepackt in einen BigInt. Wähle das Discord- oder Twitter-Epochen-Preset oder tippe deine eigene Epoche in Unix-Millisekunden, dann setze den Zeitstempel und die Feldwerte, um eine ID zu prägen. Wechsle zu Dekodieren, um einen beliebigen Snowflake einzufügen und den exakten Millisekunden-Zeitstempel, seine ISO-Zeit und die Worker-, Prozess- und Sequenz-Bits unter der von dir gewählten Epoche zu sehen. Praktisch zum Reverse-Engineering, wann eine Discord-Nachricht gepostet wurde, zum Reproduzieren einer ID in einem Test-Fixture oder zum Plausibilitätscheck eines verteilten ID-Schemas. Das ganze Bit-Shifting geschieht auf deinem Gerät; die IDs und Zeitstempel, die du eingibst, werden niemals hochgeladen.

Funktionen

So verwendest du Snowflake ID Generator

  1. Wähle Discord, Twitter oder eine eigene Epoche
  2. Setze in Erzeugen den Zeitstempel und die Worker-, Prozess- und Sequenz-Werte
  3. Kopiere die resultierende 64-Bit-Snowflake-ID
  4. Wechsle zu Dekodieren und füge einen Snowflake ein, um seinen Zeitstempel und seine Felder zurückzulesen

Beispiel

Eingabe

175928847299117063  (Discord epoch)

Ausgabe

timestamp: 2016-04-30T11:18:25.796Z
worker: 1  process: 0  sequence: 7

Das Dekodieren eines Discord-Snowflake stellt wieder her, wann er erstellt wurde, und seine Feld-Bits.

Häufige Fehler & Fehlerbehebung

Häufig gestellte Fragen

Was ist eine Snowflake-ID?
Ein Snowflake ist eine von Twitter und Discord verwendete 64-Bit-ID, die einen Millisekunden-Zeitstempel, eine Worker-(Maschinen-)ID, eine Prozess-ID und eine Sequenz pro Millisekunde in eine einzige sortierbare Zahl packt, sodass IDs eindeutig und grob zeitgeordnet sind, ohne einen zentralen Zähler.
Wie finde ich anhand seiner ID heraus, wann eine Discord-Nachricht gesendet wurde?
Füge die Nachrichten- oder Benutzer-ID in Dekodieren mit ausgewählter Discord-Epoche ein. Das Tool schiebt die 42 Zeitstempel-Bits heraus, addiert die Discord-Epoche (1420070400000 ms) und zeigt die exakte Erstellungszeit als ISO und Unix-Millisekunden.
Was ist der Unterschied zwischen der Twitter- und der Discord-Epoche?
Beide Layouts haben dieselben Bit-Breiten, aber sie zählen Millisekunden ab unterschiedlichen Startpunkten: Twitter verwendet 1288834974657 (Nov 2010) und Discord verwendet 1420070400000 (Jan 2015). Das Dekodieren mit der falschen verschiebt jeden Zeitstempel um diese Lücke.
Warum sind Worker und Prozess auf 31 und die Sequenz auf 4095 gedeckelt?
Das Layout gibt Worker und Prozess je 5 Bit (2^5 − 1 = 31) und der Sequenz 12 Bit (2^12 − 1 = 4095). Werte über diesen Grenzen würden in das nächste Feld überlaufen, sodass der Generator sie ablehnt.
Kann ich eine eigene Epoche für meinen eigenen Dienst verwenden?
Ja. Wähle das Eigene-Preset und gib deine Epoche in Unix-Millisekunden ein. Erzeugen und Dekodieren verwenden dann diesen Wert, was dir erlaubt, mit jedem Snowflake-artigen Schema zu arbeiten, das das 42/5/5/12-Bit-Layout beibehält.
Werden die IDs, die ich erzeuge oder dekodiere, irgendwohin gesendet?
Nein. Jeder Bit-Shift läuft in deinem Browser mit BigInt. Die Zeitstempel, IDs und Feldwerte, die du tippst oder einfügst, verlassen niemals dein Gerät und werden nicht zu ArrayKit hochgeladen.

Verwandte Tools

Alle ArrayKit-Tools