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.
Generierte UUIDs
| 1 | 08237639-e8c0-43c3-8047-a8d2e9b46f73 |
| 2 | 5662e96c-6f86-476a-9986-7dbcc8984448 |
| 3 | bfa51a8d-44df-43b0-b1d7-b40fbc0751f9 |
| 4 | f43b10a2-1686-4c4e-b9ea-639073acfe91 |
| 5 | e94e572c-ffb3-4e07-84fa-716278fd76bc |
| 6 | 584e969d-e484-468c-8cde-2f517a0cd7ed |
| 7 | e5eaa5d5-f35c-45ea-916a-8872ee17739f |
| 8 | 69e5c5cf-7054-4783-9452-4691684d28fd |
| 9 | bc6dc061-8958-4fa1-8fbd-1f96fe1b934f |
| 10 | 25d578f3-19da-41d2-acc2-f0c979723b19 |
| 11 | 7a681c80-7a51-4b6d-93e4-ff33a57b6e31 |
| 12 | 865b4aa5-2845-4bdc-97b9-cecc4bb8ee40 |
| 13 | 87023207-4000-4307-9465-fc2532d62c71 |
| 14 | 921b0f8c-a189-4800-bd90-2844fec2394a |
| 15 | 15b2a7d7-2d3c-4a50-aa13-0756ef967b22 |
| 16 | 2b8fe15d-887c-4de4-8cce-050a55e5f0de |
| 17 | 62a1eaf3-a474-4c58-88aa-06e44655df61 |
| 18 | ff911164-6a04-40a7-afb6-af468608d1eb |
| 19 | 36200b7a-2011-424e-ad38-a278e569ebab |
| 20 | 3b646a64-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?
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
- 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.
- 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.
- 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.
- 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.