🛠️

Whiz Tools

Build • Create • Innovate

Générateur d'identifiants uniques triables par K (KSUID)

Générez des identifiants uniques triables par K (KSUID) à utiliser dans des systèmes distribués, des bases de données et des applications nécessitant des clés uniques et triables par le temps. Les KSUID combinent un horodatage avec des données aléatoires pour créer des identifiants résistants aux collisions et triables.

Générateur de KSUID

📚

Documentation

Générateur de KSUID

Introduction

KSUID (K-Sortable Unique IDentifier) est un format d'identifiant unique qui offre plusieurs avantages par rapport aux UUID (Identifiant Unique Universel) et à d'autres systèmes d'identification. Cet outil vous permet de générer des KSUID rapidement et facilement.

Qu'est-ce qu'un KSUID ?

Un KSUID est un identifiant sortable de 20 octets qui se compose de :

  1. Un horodatage de 32 bits (4 octets)
  2. 16 octets de randomisation

Lorsqu'il est représenté sous forme de chaîne, un KSUID est encodé en base62 et mesure 27 caractères de long.

Structure d'un KSUID

La structure d'un KSUID peut être décomposée comme suit :

  1. Horodatage (4 octets) : Cela représente le nombre de secondes écoulées depuis l'époque Unix (1er janvier 1970 à 00:00 UTC). L'horodatage permet aux KSUID d'être à peu près triables par temps de génération.

  2. Composant aléatoire (16 octets) : Il s'agit d'un nombre aléatoire cryptographiquement sécurisé qui garantit l'unicité même lorsque plusieurs KSUID sont générés dans la même seconde.

  3. Encodage en base62 : Les 20 octets combinés (horodatage + aléatoire) sont ensuite encodés en utilisant la base62 (A-Z, a-z, 0-9) pour produire la chaîne finale de 27 caractères.

Formule KSUID

Un KSUID peut être représenté mathématiquement comme suit :

KSUID=Base62(TR)KSUID = Base62(T || R)

Où :

  • TT est l'horodatage de 32 bits
  • RR est le composant aléatoire de 128 bits
  • || désigne la concaténation

L'horodatage TT est calculé comme suit :

T = \text{floor}(\text{current_time} - \text{KSUID_epoch})

Où KSUID_epoch est 1400000000 (2014-05-13T16:53:20Z).

Diagramme de structure de KSUID

Horodatage (4 octets) Composant aléatoire (16 octets)

Cas d'utilisation des KSUIDs

Les KSUIDs sont particulièrement utiles dans les scénarios suivants :

  1. Systèmes distribués : Lorsque vous avez besoin d'identifiants uniques sur plusieurs serveurs ou services sans coordination.

  2. Données triables par temps : Lorsque vous souhaitez trier des données par temps de création sans stocker un horodatage séparé.

  3. Clés de base de données : Comme clés primaires dans les bases de données, en particulier dans les bases de données distribuées où les entiers auto-incrémentés ne sont pas adaptés.

  4. Identifiants sûrs pour les URL : Pour créer des identifiants courts, uniques et sûrs pour les URL pour des ressources dans des applications web.

  5. Corrélation de journaux : Pour corréler les entrées de journaux à travers différents services dans une architecture de microservices.

Avantages des KSUIDs

Les KSUIDs offrent plusieurs avantages par rapport à d'autres systèmes d'identification :

  1. Triabilité : Contrairement aux UUID, les KSUID peuvent être triés chronologiquement, ce qui est utile pour l'indexation des bases de données et l'analyse des journaux.

  2. Pas de coordination requise : Contrairement aux ID auto-incrémentés, les KSUID peuvent être générés indépendamment par différents serveurs sans risquer de collisions.

  3. Représentation compacte : Avec 27 caractères, les KSUID sont plus compacts que les UUID lorsqu'ils sont représentés sous forme de chaînes.

  4. Horodatage intégré : L'horodatage intégré permet un tri et un filtrage basés sur le temps sans avoir besoin d'un champ d'horodatage séparé.

  5. Sûr pour les URL : L'encodage en base62 rend les KSUID sûrs pour une utilisation dans les URL sans encodage supplémentaire.

  6. Probabilité de collision réduite : Le composant aléatoire de 16 octets rend les collisions extrêmement peu probables, même à des taux de génération élevés.

Comment utiliser ce générateur

  1. Entrez tous les paramètres supplémentaires si nécessaire (par exemple, un horodatage personnalisé).
  2. Cliquez sur le bouton "Générer KSUID" pour créer un nouveau KSUID.
  3. Le KSUID généré sera affiché dans le champ de sortie.
  4. Vous pouvez générer plusieurs KSUID en répétant les étapes 1-3.
  5. Utilisez le bouton "Copier" à côté de chaque KSUID pour le copier dans votre presse-papiers.
  6. En option, utilisez la fonction "Exporter" pour télécharger une liste de KSUID générés.

N'oubliez pas que chaque KSUID est unique et ne doit être utilisé qu'une seule fois. Générez un nouveau KSUID chaque fois que vous avez besoin d'un identifiant unique.

Exemples de code

Voici des exemples de génération de KSUID dans divers langages de programmation :

1## Python
2import ksuid
3
4new_id = ksuid.ksuid()
5print(f"KSUID généré : {new_id}")
6

Références

  1. Référentiel GitHub de KSUID de Segment : https://github.com/segmentio/ksuid
  2. "Générer de bons identifiants uniques" par Peter Bourgon : https://peter.bourgon.org/blog/2019/05/20/generating-good-unique-ids.html
  3. Spécification KSUID : https://github.com/segmentio/ksuid/blob/master/README.md