Identifiants et temps

Décodeur Snowflake

Choisissez le schéma du système qui a émis le nombre.

Décodeur Snowflake

ID Snowflake décimal

Rapport

Tous les calculs restent dans le navigateur ; les entrées ne sont pas envoyées.

Options

Un ID décimal, 256 caractères maximum. Ni URL ni liste.

Twitter snowflake-2010 : 41/5/5/12. Nœud haut = centre de données, bas = worker ; bit de signe réservé à 0. Voir la source

Entrez un ID ou chargez un exemple.

Le Décodeur Snowflake aide à retrouver un repère temporel lorsqu’un journal ne contient qu’un identifiant. Il faut toutefois connaître le schéma d’origine. Un même nombre peut donner plusieurs dates plausibles selon l’époque choisie : vérifiez la configuration du service avant de tirer une conclusion sur la chronologie.

Pourquoi utiliser ce Décodeur Snowflake ?

Distinguer les formats derrière les marques

Ce Décodeur Snowflake sépare le format Twitter archivé de celui de Discord : 41 ou 42 bits de temps, mais aussi deux sous-champs de nœud aux noms différents. L’époque et la source du préréglage restent consultables pour vérifier les hypothèses du calcul.

Un identifiant séparé en temps, deux sous-champs de nœud et séquence, avec une horloge reliée au temps.

Rejouer exactement un cas de test

Un instant, un nœud et une séquence fixes redonnent le même identifiant. Les groupes binaires se comparent aux masques de votre application. Déplacez une frontière dans le schéma personnalisé pour comprendre un décalage de bits sans modifier les enregistrements de production.

Deux schémas binaires continus dont les frontières entre temps, nœud et séquence diffèrent.

Trois points à vérifier

01

Retrouver le schéma émetteur

Twitter original correspond au code archivé snowflake-2010. Discord utilise le format non signé décrit par sa documentation. Pour un service interne, renseignez son époque et ses largeurs de champs : le nombre ne permet pas de les deviner.

02

Vérifier les unités et le nœud

L’époque et l’heure de génération sont en millisecondes Unix. Le nœud combiné vaut partie haute × 32 + partie basse. Twitter y place le centre de données et le worker ; Discord, le worker et le processus.

03

Attendre le nouveau résultat

Le décodage automatique attend 350 ms après une modification. Désactivez-le pour lancer le calcul par bouton ou Ctrl/Cmd + Enter. Les exports restent bloqués pendant que le résultat est périmé. La génération exige toujours une action explicite.

Lire les champs du nombre

Conserver toutes les décimales

Le décodeur de Snowflake lit directement la chaîne décimale avec BigInt. Sous Discord, 175928847299117063 donne 2016-04-30T11:18:25.796Z, le nœud 32 et la séquence 7. Deux nombres voisins restent distincts, même lorsqu’un flottant les arrondirait à la même valeur.

Voir le temps et les champs

Le rapport présente UTC, horodatage Unix en millisecondes et durée depuis l’époque. Les groupes binaires conservent leurs zéros initiaux. Twitter affiche en plus son bit de signe réservé à zéro ; Discord emploie les 64 bits.

Définir un epoch personnalisé

Le schéma suit l’ordre continu temps, nœud, séquence, des bits hauts aux bits bas. Nœud ou séquence peuvent occuper zéro bit et ne contenir alors que zéro. Vous pouvez ainsi vérifier la répartition exacte utilisée par votre service.

Créer une donnée de test stable

Le générateur assemble les trois champs puis les décode aussitôt. Une heure laissée vide prend la valeur de l’horloge au clic ; une heure explicite permet de reproduire le cas. Copiez l’ID seul ou téléchargez le rapport JSON avec le schéma et les valeurs.

Ce que le résultat permet de conclure

Pas de reconnaissance de plateforme
L’identifiant ne porte aucun nom d’époque. Un mauvais préréglage peut produire une date crédible sans erreur. Twitter original ne prétend pas couvrir toutes les versions internes actuelles de X.
Millisecondes et 64 bits au maximum
Seuls les champs continus temps → nœud → séquence sont acceptés. Le temps exige au moins un bit. Les secondes, microsecondes, positions dispersées ou autres ordres nécessitent un autre modèle de décodage.
Un entier décimal à la fois
Les espaces autour et les zéros initiaux sont permis. Les ID négatifs, fractions, notations scientifiques, valeurs hexadécimales, URL et listes sont refusés. Chaque entrée numérique est limitée à 256 caractères et les entiers exportés restent des chaînes.
Pas de service de génération unique
Des paramètres identiques donnent des ID identiques. Il n’y a ni attribution de workers, ni compteur persistant, ni gestion du recul de l’horloge. Zéro et les dates futures peuvent servir de tests si les champs les acceptent.
Aucune recherche de compte ou de message
Les bits ne révèlent ni nom de personne, ni contenu, ni localisation du serveur. Aucune API ne confirme l’existence d’un objet. Une date hors de la plage prise en charge est refusée explicitement plutôt que tronquée.

Décodeur Snowflake : questions

Comment retrouver la date de création d’un ID Discord ?

Sélectionnez Discord puis collez la chaîne d’origine. Le Décodeur Snowflake retire les 22 bits bas et ajoute 1420070400000 millisecondes. La date UTC correspond au temps inscrit dans le nombre, sans vérification indépendante d’un message.

En quoi les époques Twitter et Discord diffèrent-elles ?

Le format Twitter archivé commence à 1288834974657 ms et Discord à 1420070400000 ms. Le champ temporel diffère lui aussi : 41 contre 42 bits. Changer uniquement l’époque ne décrit donc pas toute la différence.

Pourquoi les sous-champs s’arrêtent-ils à 31 et la séquence à 4095 ?

Chaque moitié du nœud occupe 5 bits, soit 0–31. Leur combinaison occupe 10 bits, soit 0–1023. Les 12 bits de séquence autorisent 0–4095. Dépasser ces limites risquerait de déborder sur le champ voisin ; le calcul le refuse.

Puis-je choisir l’époque de mon propre service ?

Oui, avec le mode personnalisé. Entrez une époque Unix signée en millisecondes et les trois largeurs. L’heure à encoder doit être égale ou postérieure à l’époque et son écart doit tenir dans le champ de temps.

Pourquoi mon code JavaScript donne-t-il un autre résultat ?

Le type Number ne représente pas exactement tous les entiers au-delà de 2^53 − 1. Gardez l’ID sous forme de chaîne et utilisez BigInt. Si la valeur a déjà été arrondie par un tableur ou un parseur, il faut récupérer les chiffres d’origine.

Une question sur votre schéma ?

Vérifier le prochain ID

Le Décodeur Snowflake conserve les paramètres avec le résultat. Contrôlez les champs bas autant que la date, puis gardez le rapport pour votre diagnostic.