Menü

Werkzeuge durchsuchenÄnderungsprotokoll

zum Navigieren zum ÖffnenBeschreiben Sie das Problem, nicht das Tool

UUID-Batch-Generator

Zeichnet 16 kryptografische Zufallsbytes für jeden Bezeichner, ersetzt die RFC 9562-Versions- und Variantenbits und stellt bis zu 10.000 UUIDv4-Werte als kopierbare Tabelle mit einem herunterladbaren CSV-Artefakt dar.

Ein bis 10.000 unabhängige UUIDs der Version 4. Die Tabelle kann kopiert oder als CSV heruntergeladen werden.

Die zugrunde liegenden 128 Bit sind gleich. Lediglich ihre Textdarstellung ändert sich.

UUIDs generiert
20
Zufällige Bits in jeder UUID
122
Duplikate in diesem Stapel
0
Darstellung
Canonical, lowercase

Generierte UUIDs

108237639-e8c0-43c3-8047-a8d2e9b46f73
25662e96c-6f86-476a-9986-7dbcc8984448
3bfa51a8d-44df-43b0-b1d7-b40fbc0751f9
4f43b10a2-1686-4c4e-b9ea-639073acfe91
5e94e572c-ffb3-4e07-84fa-716278fd76bc
6584e969d-e484-468c-8cde-2f517a0cd7ed
7e5eaa5d5-f35c-45ea-916a-8872ee17739f
869e5c5cf-7054-4783-9452-4691684d28fd
9bc6dc061-8958-4fa1-8fbd-1f96fe1b934f
1025d578f3-19da-41d2-acc2-f0c979723b19
117a681c80-7a51-4b6d-93e4-ff33a57b6e31
12865b4aa5-2845-4bdc-97b9-cecc4bb8ee40
1387023207-4000-4307-9465-fc2532d62c71
14921b0f8c-a189-4800-bd90-2844fec2394a
1515b2a7d7-2d3c-4a50-aa13-0756ef967b22
162b8fe15d-887c-4de4-8cce-050a55e5f0de
1762a1eaf3-a474-4c58-88aa-06e44655df61
18ff911164-6a04-40a7-afb6-af468608d1eb
1936200b7a-2011-424e-ad38-a278e569ebab
203b646a64-ccd5-4949-bca3-37b370a33778

Die Ergebnisse werden ohne Gewähr für ihre Richtigkeit bereitgestellt. Die Methode und ihre Quellen stehen unten, damit Sie den Rechenweg prüfen können.

So funktioniert es

Was das bringt

Eine UUID der Version 4 ist eine 128-Bit-Kennung, deren Nutzlast bis auf sechs Bits, die angeben, welches Layout sie verwendet, zufällig ist. Es enthält keinen Zeitstempel, keine Maschinenadresse oder einen Datenbankzähler. Deshalb können unabhängige Systeme Werte generieren, ohne einen zentralen Dienst zu koordinieren.

Dieses Werkzeug stellt eine Charge statt einer einzelnen Zierschnur her. Jede generierte UUID ist eine Tabellenzeile, sodass das Ergebnis kopiert, auf Duplikate überprüft oder als CSV heruntergeladen und als Startdaten, Gerätekennungen oder Importschlüssel verwendet werden kann.

Die Methode

RFC 9562 erlaubt einer Implementierung, zuerst alle 128 Bits zu zeichnen und dann die Versions- und Variantenfelder zu ersetzen. Als nullindizierte Oktette geschrieben:

octet 6 = (random octet 6 AND 00001111) OR 01000000
octet 8 = (random octet 8 AND 00111111) OR 10000000

Der erste Ausdruck erzwingt das hohe Halbbyte von Oktett 6 auf hexadezimal 4. Der zweite erzwingt, dass die beiden höchstwertigen Bits von Oktett 8 binär 10 werden, sodass seine erste hexadezimale Ziffer 8, 9, a oder b ist. Alle anderen Bits und die von diesen Masken erhaltenen niedrigen Bits bleiben zufällig: insgesamt 122 Bits.

Web Crypto begrenzt eine getRandomValues-Anfrage auf 65.536 Bytes. Ein maximaler Stapel enthält 160.000 Bytes, sodass die Implementierung die Zuweisung in begrenzten Blöcken füllt, anstatt sich auf eine Anfrage zu verlassen, die die Plattform ablehnen muss.

Vor dem Weiterlesen

In welcher kanonischen Zeichenfolge befinden sich sowohl die Version 4- als auch die RFC-Variantenfelder an den richtigen Positionen?

  • Die Variante ist richtig, aber im ersten Halbbyte der dritten Gruppe steht Version 3.

  • Die Version ist richtig, aber 7 beginnt mit den Variantenbits 01 und nicht mit 10.

  • Ja. Die dritte Gruppe beginnt mit 4 und a beginnt mit binärer 10.

00000000-0000-4000-a000-000000000000. Version 4 belegt das erste Halbbyte der dritten Gruppe; die RFC-Variante ist zu Beginn des Viertels als 8, 9, a oder b sichtbar.

Ein Beispiel für ein funktionierendes Bit-Layout

Tests benötigen eine wiederholbare Bytequelle, auch wenn dies beim Live-Generator nicht der Fall sein muss. Das Einspeisen der 16 Bytes 00 01 02 ... 0f in den erstellten Algorithmus ergibt:

random:  00010203-0405-0607-0809-0a0b0c0d0e0f
UUIDv4:  00010203-0405-4607-8809-0a0b0c0d0e0f
                         ^    ^
                      version variant

Lediglich die erforderlichen High-Bits der Oktette 6 und 8 haben sich geändert. Der Formeltest bestätigt diesen vollständigen Vektor, verwendet dann die echte Web-Crypto-Quelle für 100 UUIDs und prüft jeden Wert anhand der Versions-/Variantengrammatik. Ein weiterer Test generiert die volle 10.000-Zeilen-Grenze und beweist, dass keine zufällige Anfrage 65.536 Byte überschreitet.

Kanonische, kompakte und URN-Formen

Die bekannte Darstellung gruppiert 32 hexadezimale Ziffern als 8-4-4-4-12:

00010203-0405-4607-8809-0a0b0c0d0e0f

Bei kompaktem Text werden die vier Bindestriche entfernt. Der URN-Text stellt den kanonischen Wert voran:

urn:uuid:00010203-0405-4607-8809-0a0b0c0d0e0f

Großschreibung ändert a bis f in A bis F. Keine dieser Operationen ändert ein wenig an der UUID; Sie formatieren Verträge für das System, das die Liste nutzen wird.

Kollisionswahrscheinlichkeit, ehrlich gesagt

Es gibt 2^122 mögliche zufällige Nutzlasten. Für n einheitlich generierte UUIDs ist die Geburtstagsnäherung für mindestens eine Kollision:

p ≈ n × (n - 1) / (2 × 2^122)

Für 10.000 Werte sind das ungefähr 9,4 × 10^-30. Tiny ist nicht Null und ein kryptografischer Generator ist immer noch eine Implementierungsabhängigkeit. Der Duplikatzähler der Tabelle fängt eine Wiederholung innerhalb dieses Batches ab, während eine Eindeutigkeitsbeschränkung der Datenbank die richtige endgültige Autorität über jeden Batch und jedes System hinweg behält.

Was es nicht tut

Es generiert keine zeitlich geordneten UUIDv7-Werte, deterministische, namensbasierte UUIDv5-Werte oder datenbankspezifische Binärkodierungen. Es wird auch nicht versprochen, dass eine UUID geheim, signiert oder resistent gegen Änderungen ist. Seine einzige Aufgabe ist ein standardisierter Stapel kryptografisch zufälliger Identifikatoren der Version 4.

So wird es gemacht

  1. Validieren Sie eine ganzzahlige Chargengröße von 1 bis 10.000. Ordnen Sie 16 Bytes pro UUID zu und füllen Sie sie aus Web Crypto in Aufrufen, die nicht größer als das 65.536-Byte-Kontingent sind.
  2. Behalten Sie in Oktett 6 die unteren vier Zufallsbits bei und ersetzen Sie die hohen vier durch 0100, das Feld der Version 4. Behalten Sie in Oktett 8 die unteren sechs Zufallsbits bei und ersetzen Sie die beiden hohen durch 10, die RFC-Variante.
  3. Rendern Sie die 16 Oktette als 32 Hexadezimalziffern. Kanonische Form fügt Bindestriche in der Gruppierung 8-4-4-4-12 ein; Compact entfernt sie; URN fügt das Präfix urn:uuid hinzu. Die Groß-/Kleinschreibung ändert sich kein bisschen.
  4. Vergleichen Sie kanonische Werte innerhalb der aktuellen Charge und melden Sie alle tatsächlich beobachteten Duplikate. Stellen Sie jeden Wert als statische Ergebniszeile dar, die kopiert oder als CSV heruntergeladen werden kann.

Wovon es ausgeht

  • Jede UUID beginnt mit kryptografischen Zufallsbytes des Browsers, nicht mit Math.random und nicht mit einem für den Benutzer sichtbaren Startwert. Sechs Strukturbits hinterlassen 122 Zufallsbits pro Wert.
  • Zufällige UUIDs machen Kollisionen außerordentlich unwahrscheinlich; Sie geben keine mathematische Eindeutigkeitsgarantie. Die Anzahl der Batch-Duplikate ist eine Beobachtung und kein Beweis für einen an anderer Stelle generierten Wert.
  • UUIDs sind Identifikatoren, keine Authentifizierungsgeheimnisse. RFC 9562 besagt, dass man nicht davon ausgehen soll, dass sie schwer zu erraten sind, oder den bloßen Besitz als Zugriffsmöglichkeit nutzen soll.
  • Die generierten Werte werden nicht in der URL platziert, in den Katalogeinstellungen gespeichert oder an einen Server gesendet. Eine Neuberechnung erzeugt absichtlich einen neuen Stapel.

Fragen

Werden auf dieser Seite generierte UUIDs an einen Server gesendet?

Nein. Web Crypto füllt die Zufallsbytes in diesem Browser, die Versions- und Variantenbits werden lokal gesetzt und die Tabelle existiert nur im gerenderten Ergebnis. Der generierte Browsertest schlägt fehl, wenn bei normaler Toolverwendung eine Off-Origin-Anfrage gestellt wird.

Wie viele Zufallsbits enthält eine UUID der Version 4?

122. Eine UUID hat insgesamt 128 Bit; vier identifizieren Version 4 und zwei identifizieren die RFC-Variante. RFC 9562 weist die anderen 122 Bits Zufallsdaten zu.

Können zwei UUID v4-Werte jemals gleich sein?

Im Prinzip ja, denn die Generierung erfolgt zufällig, aber der Raum enthält 2^122 Möglichkeiten. Bei normalen Stapelgrößen bleibt die Wahrscheinlichkeit gering, und diese Seite meldet auch ein Duplikat, wenn eines in der aktuellen Liste auftritt.

Ist kompakter oder großgeschriebener UUID-Text eine andere Kennung?

Nein. Bindestriche, hexadezimale Groß-/Kleinschreibung und das Präfix urn:uuid sind Darstellungen von ungefähr denselben 128 Bits. Verwenden Sie die Form, die die empfangende Datenbank oder API erwartet.

Sollte eine UUID v4 als API-Schlüssel oder Passwort verwendet werden?

Nein. RFC 9562 warnt ausdrücklich davor, anzunehmen, dass UUIDs schwer zu erraten sind, oder den Besitz als Zugriffsmöglichkeit zu nutzen. Generieren Sie ein dediziertes Geheimnis mit der für die Authentifizierung geeigneten Länge und Verarbeitungsregeln.

Quellen