Générateur d'UUID

Générez et inspectez des identifiants cryptographiques UUIDv4 et UUIDv7 ordonnés temporellement sans latence. Comprend l'Inspecteur Inverse UUID, l'extraction d'horodatage UTC, le formatage style Stripe et la génération par lots sans collision.

Outils en Ligne
SYSTÈME: ACTIF
CSPRNG (window.crypto)0ms Latence Côté ClientConformité RFC 9562 / RFC 4122
Sélectionnez l'Architecture d'Identifiant
Identifiant Cryptographique Généré
Entropie Cryptographique:74 bits CSPRNG + 48 bits Horodatage Millisecondes
018f3a5b-9d48-7e30-b98a-5e4d21f879ab

Formatage Avancé (Style Stripe)

Appliquez des préfixes de domaine, retirez les tirets et adaptez vos identifiants pour vos schémas ORM de production.

Casse Hexadécimale
Séparateurs Tirets
Préfixes Rapides :
Aperçu Formaté40 chars
usr_018f3a5b-9d48-7e30-b98a-5e4d21f879ab

Extraits de Code pour Développeurs

Code prêt pour la production afin d'instancier cette architecture dans votre environnement cible.

// RFC 9562 UUIDv7 in JavaScript / TypeScript (Native Web Crypto)
export function generateUUIDv7(): string {
  const time = Date.now();
  const timeHex = time.toString(16).padStart(12, '0');
  const rand = new Uint8Array(10);
  window.crypto.getRandomValues(rand);
  rand[0] = (rand[0] & 0x0f) | 0x70; // Version 7
  rand[2] = (rand[2] & 0x3f) | 0x80; // Variant RFC 4122
  const randHex = Array.from(rand).map(b => b.toString(16).padStart(2, '0')).join('');
  return `${timeHex.slice(0,8)}-${timeHex.slice(8,12)}-${randHex.slice(0,4)}-${randHex.slice(4,8)}-${randHex.slice(8,20)}`;
}

Spécifications Techniques Standards RFC 9562 & RFC 4122

Référence technique pour les identifiants uniques universels 128 bits.

Évolution de RFC 4122 (2005) à RFC 9562 (Mai 2024)

Publié par l'IETF en mai 2024, RFC 9562 remplace RFC 4122 pour combler les limites de montée en charge dans les bases de données distribuées. RFC 9562 officialise UUIDv6, UUIDv7 et UUIDv8.

Entropie Cryptographique et Mathématiques des Collisions

Calculs de probabilité rigoureux fondés sur le paradoxe des anniversaires dans un espace 128 bits.

Pour un espace d'états N et k identifiants générés, la probabilité de collision est :

P(k) ≈ 1 - exp( -k² / (2 × 2¹²²) )
Identifiants GénérésProbabilité de Collision
1 000 000 (10⁶)
Génération instantanée par lot (batch)
≈ 1 × 10⁻²⁵ (Virtuellement 0)
1 000 000 000 (10⁹)
1 milliard d’enregistrements cloud
≈ 1 × 10⁻¹⁹
100 000 000 000 (10¹¹)
Échelle de cluster de télécommunications globales
≈ 1 × 10⁻¹⁵
2,71 × 10¹⁸
Génération de 1 milliard d’ID/sec pendant 85 ans
≈ 0,0000001% (1 sur un milliard)

Guide d'Intégration en Base de Données de Production

Configurations DDL optimales pour PostgreSQL, MySQL InnoDB et SQLite.

PostgreSQL (v16 / v17+)
-- Recommended Schema for High-Throughput Tables
CREATE TABLE app_events (
    id UUID PRIMARY KEY, -- Stores 16 bytes binary
    payload JSONB NOT NULL,
    created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);

-- Extract timestamp directly from UUIDv7
-- No extra created_at index required!
SELECT id, ('x' || lpad(substr(replace(id::text, '-', ''), 1, 12), 16, '0'))::bit(64)::bigint
AS epoch_ms FROM app_events;
MySQL (InnoDB Engine)
-- Use BINARY(16) for Compact Primary Key
CREATE TABLE production_orders (
    id BINARY(16) PRIMARY KEY,
    amount DECIMAL(10,2) NOT NULL,
    status VARCHAR(32) NOT NULL
) ENGINE=InnoDB;

-- Insert UUIDv7 converted to binary
INSERT INTO production_orders (id, amount, status)
VALUES (UUID_TO_BIN('018f3a5b-9d48-7e30-b98a-5e4d21f879ab', 1), 99.50, 'paid');

Comment Utiliser le Générateur Cryptographique d'UUID

Guide étape par étape pour développeurs pour générer, inspecter, formater et optimiser des identifiants 128 bits en base de données.

01

Sélectionnez l'Architecture d'Identifiant

Choisissez entre UUIDv7 (ordonné temporellement et monotone pour clés primaires en bases de données) ou UUIDv4 (purement aléatoire pour jetons de session et secrets).

02

Générez des Identifiants Cryptographiques

Cliquez sur Régénérer pour produire un identifiant 128 bits via l'API native Web Crypto (window.crypto), garantissant une exécution ultra-rapide sans collision.

03

Appliquez le Formatage Style Stripe

Ajoutez des préfixes d'entité (ex : usr_, tx_), basculez entre minuscules et majuscules, supprimez les tirets ou encapsulez aux formats SQL, GUID et Base64URL.

04

Analysez avec l'Inspecteur Inverse

Passez à l'onglet Inspecteur Inverse d'UUID et collez une chaîne pour extraire la version RFC, la variante, le schéma de bits et l'horodatage UTC précis.

05

Générez des Lots Massifs Sans Collision

Utilisez l'onglet Grille par Lots pour générer jusqu'à 50 000 UUIDs sûrs en moins de 50 ms, avec export immédiat en CSV, JSON et fichier texte.

06

Optimisez vos Index et Schémas de Base de Données

Consultez l'onglet Optimiseur de Base de Données pour évaluer la fragmentation B-Tree et copiez des schémas DDL prêts à l'emploi pour PostgreSQL, MySQL InnoDB et SQLite.

Foire Aux Questions (FAQ)

Réponses techniques aux questions courantes sur l'architecture UUIDv7 vs UUIDv4, les normes RFC et les performances d'indexation.

Q:Pourquoi l'UUIDv7 empêche-t-il la fragmentation d'index B-Tree par rapport à l'UUIDv4 ?

L'UUIDv4 disperse les écritures aléatoirement sur toutes les pages. Quand une page est pleine, le moteur opère une division de page coûteuse ramenant le remplissage à ~50%. L'UUIDv7 intègre un horodatage 48 bits, assurant des ajouts séquentiels à droite de l'arbre.

Q:Comment ce générateur garantit-il zéro collision et une sécurité cryptographique ?

Toute la logique s'exécute dans votre navigateur avec l'API native Web Crypto (window.crypto), qui tire son entropie directement du CSPRNG du noyau du système d'exploitation.

Q:Comment l'Inspecteur Inverse extrait-il la date d'un UUIDv7 et d'un UUIDv1 ?

Pour UUIDv7, les 48 premiers bits codent le timestamp Unix en millisecondes. Notre outil décode ces bits pour obtenir l'heure ISO-8601 UTC. Pour UUIDv1, le timestamp 60 bits est reconstruit à partir des blocs time_hi, time_mid et time_low.

Q:L'UUIDv7 est-il officiellement standardisé par l'IETF ?

Oui. L'IETF a publié la spécification RFC 9562 en mai 2024, remplaçant la norme historique RFC 4122.

Q:L'UUIDv7 présente-t-il des risques de fuite de données réseau ?

Non. Contrairement à UUIDv1 qui contenait l'adresse MAC matérielle, UUIDv7 ne comporte qu'un horodatage UTC et 74 bits d'entropie aléatoire.

Q:Quel type de colonne est recommandé pour stocker UUIDv7 dans PostgreSQL et MySQL ?

Dans PostgreSQL, utilisez le type natif UUID (16 octets). Dans MySQL InnoDB, préférez BINARY(16) pour éviter les 36 octets de VARCHAR.

Q:Peut-on trier les lignes chronologiquement grâce à une clé primaire UUIDv7 ?

Oui. Les 48 premiers bits étant en grand-boutiste (big-endian), un tri standard sur la colonne classe automatiquement les lignes dans l'ordre temporel.

Q:Pourquoi ajouter un préfixe style Stripe (ex : usr_, tx_) aux UUIDs ?

Ces préfixes rendent les identifiants explicites dans les journaux, évitent les inversions d'arguments dans les APIs et préservent l'entropie du UUID.

Qu'est-ce que Générateur d'UUID ?

Gérer des clés primaires dans une architecture cloud à fort trafic ne s'improvise pas. Les entiers auto-incrémentés créent des goulots d'étranglement et fragmentent vos index. Ce moteur de génération résout ce problème en vous offrant des identifiants UUIDv4 et UUIDv7 générés localement, avec une latence nulle. Puisque tout le traitement s'effectue dans la mémoire de votre navigateur, la confidentialité de vos schémas de données est totale. Avec son inspecteur inversé et ses options de formatage avancées, c'est l'outil indispensable pour standardiser les identifiants de vos API RESTful.

Cas Pratique : Résoudre la Fragmentation B-Tree

Un ingénieur base de données (DBA) analyse des ralentissements sévères sur un cluster PostgreSQL. L'équipe de développement a utilisé des UUIDv4 standards pour la table principale des commandes. Parce que ces identifiants sont totalement aléatoires, chaque nouvelle insertion force la base de données à réorganiser ses pages d'index (un phénomène appelé B-Tree page split), ce qui détruit les performances d'écriture. L'ingénieur utilise cette plateforme pour générer des exemples de UUIDv7. Il utilise l'inspecteur pour vérifier que les 48 premiers bits contiennent bien le timestamp Unix. Convaincu, il copie le snippet SQL natif fourni par l'outil et met à jour le schéma de la base. Les nouvelles insertions deviennent séquentielles, résolvant instantanément le problème de performance.

Fonctionnalités pour les Architectes Logiciels

FonctionnalitéRôle TechniqueAvantage au Quotidien
Générateur UUIDv7Crée des identifiants triables chronologiquement.Élimine la fragmentation des index et accélère les requêtes en base de données.
Formatage AvancéApplique des préfixes typés et supprime les tirets.Permet de construire des API publiques élégantes et faciles à débugger.
Inspecteur InverséDécode les identifiants générés par votre application.Retrouve la date et l'heure exactes de création d'une ressource perdue.
Génération par LotsProduit des milliers d'identifiants sans collision.Idéal pour peupler des environnements de staging (pré-production) avec des données de test.

Histoire et Origine

Le concept de l'UUID a été popularisé dans les années 1990 par l'Open Software Foundation pour répondre à un besoin critique : comment permettre à des bases de données réparties dans le monde entier de générer des identifiants sans jamais communiquer entre elles ? Le génie de l'UUID réside dans sa taille de 128 bits. Les probabilités de générer deux fois le même identifiant sont si infimes qu'elles s'approchent du zéro mathématique absolu. L'arrivée récente de la norme RFC 9562 (UUIDv7) marque une nouvelle révolution, combinant cette immensité mathématique avec un tri temporel optimisé pour le cloud computing.