Sprache : en | de | fr | es

UUID vs. GUID – Wesentliche Unterschiede und Einsatzbereiche
Zurück zu den Blogs

JS UUID generieren: So erstellen Sie UUIDs in JavaScript

Eindeutige Identifikatoren sind in modernen Anwendungen unerlässlich. Sie helfen dabei, Objekte, Sitzungen, Datenbankeinträge und Ereignisse in verteilten Systemen ohne Kollision zu unterscheiden. Eine Universell eindeutige Kennung (UUID) löst dieses Problem, indem sie Identifikatoren mit einer extrem geringen Wahrscheinlichkeit von Duplikaten erzeugt.

In diesem Leitfaden lernen Sie praktische Methoden kennen, um eindeutige Identifikatoren in JavaScript mithilfe nativer Browser-APIs, externer Pakete und manueller Implementierungen zu erstellen. Die Beispiele sind sowohl für Frontend- als auch für Backend-Umgebungen geeignet.

Verständnis von UUIDs in JavaScript-Anwendungen

Eine UUID ist ein 128-Bit-Identifikator, der typischerweise als Zeichenkette im folgenden Format dargestellt wird:

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

Beispiel:

c32d8b45-92fe-44f6-8b61-42c2107dfe87

Jedes Segment enthält hexadezimale Zeichen. Die Version der UUID bestimmt, wie der Wert erzeugt wird.

Gängige Versionen sind:

  • v1 — basiert auf Zeitstempel und MAC-Adresse
  • v3 — wird mithilfe eines Namespace und MD5-Hashing erzeugt
  • v4 — zufällig generiert
  • v5 — Namespace mit SHA-1-Hashing
  • v7 — zeitlich geordnete Identifikatoren

In den meisten Webprojekten bevorzugen Entwickler v4, da es zufällig und einfach zu generieren ist.

Methoden zur Erstellung eindeutiger Identifikatoren in JavaScript

Es gibt mehrere praktische Möglichkeiten, Identifikatoren je nach Umgebung und Anforderungen zu erJavaScript-Beispiel

zeugen.

Vergleich verfügbarer Ansätze

Vorgehensweise

Umwelt

Sicherheit

Abhängigkeit

Web-Crypto-API

Browser

Hoch

Keine

uuid npm-Paket

Node.js / Browser

Hoch

Ja

Benutzerdefinierter Generator

Beliebig

Mittel

Keine

Paket „uuidv7“

Node.js

Hoch

Ja

Jeder Ansatz eignet sich für unterschiedliche Szenarien, die wir unten näher betrachten.

Erstellen eines Identifikators mit der Web Crypto API

Moderne Browser enthalten eine sichere API, die Identifikatoren ohne externe Bibliotheken generieren kann. Diese Methode funktioniert in HTTPS-Kontexten.

Beispiel: JavaScript zufällige UUID

const id=crypto.randomUUID();

console.log(id);

Beispielausgabe:

018b2f0a-45a7-778b-88b7-da6933b704a3

Diese Funktion erzeugt einen Identifikator der Version 4 unter Verwendung kryptografisch sicherer Zufälligkeit. Laut Dokumentation ist sie über das globale crypto-Objekt des Browsers verfügbar und funktioniert auch in Web Workern.

Wann man diesen Ansatz verwenden sollte

  • Verwenden Sie ihn, wenn:
  • Sie Code in einem modernen Browser ausführen
  • Ihre Website HTTPS verwendet
  • Sie keine Abhängigkeiten möchten

Beispiel für die Verwendung von UUID im JavaScript-Browser

function createSession() {

return {

sessionId: crypto.randomUUID(),

createdAt: Date.now()

};

}

const session = createSession();

console.log(session);

Dieser Ansatz ist ideal für:

  • Sitzungskennungen
  • temporäre UI-Schlüssel
  • clientseitige Datenmodelle

Verwendung eines dedizierten UUID-Pakets

Serverseitige Anwendungen und Build-Tools sind häufig auf externe Bibliotheken angewiesen.

Installation einer JavaScript-UUID-Bibliothek

Installieren Sie das Paket mit npm:

npm install uuid

Das Paket unterstützt mehrere UUID-Versionen und funktioniert sowohl in Node.js- als auch in Bundler-Umgebungen.

Beispielimplementierung

import { v4 as uuidv4 } from ‘uuid’;

const id=uuidv4();

console.log(id);

Beispielausgabe:

7e8c2c70-6c47-4d9f-b49b-7c9e0df6b81d

Bibliotheken bieten in der Regel zusätzliche Funktionen wie:

  • Byte-Array-Konvertierung
  • Namespace-Generierung
  • deterministische Identifikatoren

UUID JavaScript-Beispiel mit Versionsauswahl

Das uuid-Paket ermöglicht mehrere Generierungsstrategien.

Beispiel: mehrere Versionen generieren

import { v1 as uuidv1, v4 as uuidv4, v5 as uuidv5 } from ‘uuid’;

const timeUUID = uuidv1();

const randomUUID = uuidv4();

console.log(timeUUID);

console.log(randomUUID);

Typische Anwendungsfälle:

UUID-Version

Anwendungsfall

v1

Ereignisreihenfolge

v4

Zufällige Identifikatoren

v5

Deterministische IDs

Entwickler wählen für die meisten Systeme häufig v4, da es keine Informationen über Hardware oder Zeitstempel preisgibt.

Implementierung eines leichten benutzerdefinierten Generators

In Umgebungen ohne Web Crypto oder npm-Pakete kann ein manueller Generator ausreichend sein.

Beispiel: UUID JavaScript-Funktion erstellen

function generateId() {

return ‘xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx’

.replace(/[xy]/g, function(c) {

const r = Math.random() * 16 | 0;

const v = c === ‘x’ ? r : (r & 0x3 | 0x8);

return v.toString(16);

});

}

console.log(generateId());

Diese Implementierung ahmt das Format von Version 4 nach.

Es gibt jedoch Einschränkungen:

  • verwendet Math.random() anstelle von kryptografischer Zufälligkeit
  • nicht geeignet für sicherheitskritische Identifikatoren

Verwenden Sie sie nur für einfache Aufgaben wie temporäre UI-Schlüssel.

Moderne zeitlich geordnete Identifikatoren

Einige verteilte Systeme benötigen sortierbare Identifikatoren.

Beispiel: neuer UUID-JavaScript-Ansatz mit v7

Installieren Sie ein dediziertes Paket:

npm install uuidv7

Erzeugen Sie dann Identifikatoren:

import { uuidv7 } from ‘uuidv7’;

const id=uuidv7();

console.log(id);

Version-7-Identifikatoren kombinieren Zeitstempel mit Zufälligkeit, was sie nützlich macht für:

  • Ereignisprotokolle
  • verteilte Datenbanken
  • Systeme mit hohem Datenvolumen

Praktische Anwendungsfälle für JS-Identifikatoren

Entwickler generieren häufig eindeutige IDs in Situationen wie:

Datenbankeinträge

const user = {

id: crypto.randomUUID(),

name: “Alice”

};

React-Komponentenschlüssel

const items = data.map(item => ({

key: crypto.randomUUID(),

value: item

}));

API-Anfrageverfolgung

const requestId = crypto.randomUUID();

fetch(”/api/data”, {

headers: {

“X-Request-ID”: requestId

}

});

Diese Identifikatoren helfen beim Debugging, Logging und verteilten Tracing.

Best Practices für die Generierung von Identifikatoren

Befolgen Sie diese Empfehlungen bei der Implementierung der Identifikatorgenerierung:

  1. Bevorzugen Sie kryptografisch sichere Zufälligkeit

    Vermeiden Sie nach Möglichkeit die Verwendung von Math.random().

  2. Verwenden Sie etablierte Bibliotheken für die Produktion

    Bibliotheken behandeln Versionierung und Randfälle.

  3. Wählen Sie die richtige Version

    v4 → die meisten Anwendungen

    v7 → sortierbare Identifikatoren

    v1 → Legacy-Systeme

  4. Vermeiden Sie die Generierung von Identifikatoren sowohl auf Client- als auch auf Serverseite für dieselbe Ressource

    Dies kann zu Synchronisationsproblemen führen.

Fazit

Eindeutige Identifikatoren sind grundlegend für verteilte Softwaresysteme. JavaScript bietet mehrere Strategien zu ihrer Generierung, abhängig von Umgebung und Sicherheitsanforderungen.

Entwickler können:

  • sich auf die Web Crypto API für Browserumgebungen verlassen
  • ein externes Paket für Node.js-Projekte verwenden
  • leichtgewichtige Generatoren für einfache Aufgaben implementieren
  • moderne zeitlich geordnete Identifikatoren für groß angelegte Systeme einsetzen

Das Verständnis, wann und wie UUID-Werte in JavaScript generiert werden, gewährleistet eine zuverlässige Identifikation von Ressourcen, reduziert das Kollisionsrisiko und vereinfacht die Anwendungsarchitektur.