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
- Erzeuge einen 64-Bit-Snowflake aus einem Zeitstempel, Worker, Prozess und einer Sequenz
- Discord-(1420070400000)- und Twitter-(1288834974657)-Epochen-Presets mit einem Klick
- Eigenes Epochen-Feld für jedes andere Snowflake-Schema in Unix-Millisekunden
- Der Dekodier-Modus verwandelt jeden Snowflake in seinen Zeitstempel, seine ISO-Zeit und die Feld-Bits
- Der "Jetzt"-Knopf befüllt den Zeitstempel aus deiner Uhr für eine ID mit aktueller Zeit
- BigInt-Arithmetik hält alle 64 Bit exakt — kein Präzisionsverlust bei großen IDs
- Klare Bereichsfehler, wenn Worker, Prozess oder Sequenz ihre Bits überlaufen
- Läuft vollständig in deinem Browser, ohne dass IDs an einen Server gesendet werden
So verwendest du Snowflake ID Generator
- Wähle Discord, Twitter oder eine eigene Epoche
- Setze in Erzeugen den Zeitstempel und die Worker-, Prozess- und Sequenz-Werte
- Kopiere die resultierende 64-Bit-Snowflake-ID
- 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
- Der dekodierte Zeitstempel liegt Jahrzehnte daneben (z. B. Jahr 1970 oder 2100). — Du dekodierst mit der falschen Epoche. Stelle das Preset passend zur Quelle um — Discord- und Twitter-Epochen unterscheiden sich um Jahre — oder setze die exakte eigene Epoche.
- Erzeugen meldet 'Sequence must be between 0 and 4095.' — Das Sequenz-Feld hat nur 12 Bit. Halte Worker und Prozess innerhalb 0–31 und die Sequenz innerhalb 0–4095, damit jeder Wert in seinen Slot passt.
- 'Timestamp is before the chosen epoch.' — Ein Snowflake speichert Millisekunden seit seiner Epoche, sodass der Zeitstempel bei oder nach der Epoche liegen muss. Wähle eine spätere Zeit oder eine kleinere Epoche.
- Die eingefügte ID sieht gerundet aus oder verliert ihre letzten Ziffern. — Snowflakes überschreiten JavaScripts sicheren Integer-Bereich, behandle sie also als Strings. Dieses Tool verwendet BigInt, aber vermeide es, eine ID einzufügen, die ein anderes Tool bereits als Float geparst hat.
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