446 Stimmen

Eine GUID in Java erstellen

Was sind die besten Möglichkeiten, eine GUID in Java zu erstellen?

3 Stimmen

Die Frage an stackoverflow.com/questions/325443/generate-uuid-in-java geht es mehr um GUID-Kollisionen als um die Frage, was das Äquivalent einer GUID im Java-Tech-Stack ist, und das ist (glaube ich) eher der Fokus dieser Frage.

499voto

Kaleb Brasee Punkte 49955

java.util.UUID.randomUUID();

391voto

Mark Byers Punkte 761508

Werfen Sie einen Blick auf die UUID-Klasse gebündelt mit Java 5 und höher.

Zum Beispiel:

39voto

Anton Belev Punkte 9872

Ich möchte die Antwort von Mark Byers durch ein Beispiel ergänzen:

import java.util.UUID;

public class RandomStringUUID {
    public static void main(String[] args) {
        UUID uuid = UUID.randomUUID();
        System.out.println("UUID=" + uuid.toString() );
    }
}

33voto

Stephen C Punkte 665668

Es hängt davon ab, welche Art von UUID Sie wollen.

  • Der Java-Standard UUID Klasse erzeugt Version 4 (zufällige) UUIDs. ( UPDATE - Version 3 (Name) UUIDs können auch generiert werden.) Es kann auch mit anderen Varianten umgehen, obwohl es diese nicht erzeugen kann. (In diesem Fall bedeutet "behandeln" das Konstrukt UUID Instanzen von long , byte[] o String Repräsentationen, und stellen Sie einige geeignete Accessoren zur Verfügung).

  • En Java UUID Generator (JUG) Implementierung unterstützt angeblich "alle 3 'offiziellen' UUID-Typen gemäß der Definition von RFC-4122 "... obwohl der RFC eigentlich 4 Typen definiert und einen 5. erwähnt.

Weitere Informationen über UUID-Typen und -Varianten finden Sie in einer guten Zusammenfassung in Wikipedia und die blutigen Details sind in RFC 4122 und die anderen Spezifikationen.

8voto

Basil Bourque Punkte 256611

Die anderen Antworten sind richtig, insbesondere diese por Stephen C. .

Außerhalb von Java erreichen

Erzeugen einer UUID Wert in Java ist begrenzt auf Version 4 (zufällig) aufgrund von Sicherheitsbedenken.

Wenn Sie andere Versionen von UUIDs wünschen, besteht eine Möglichkeit darin, dass Ihre Java-Anwendung außerhalb des JVM um UUIDs durch den Aufruf von on zu erzeugen:

  • Befehlszeilen-Dienstprogramm
    Wird mit fast allen Betriebssystemen mitgeliefert.
    Zum Beispiel, uuidgen in Mac OS X, BSD und Linux zu finden.
  • Datenbank-Server
    Utilice JDBC um eine auf dem Datenbankserver erzeugte UUID abzurufen.
    Zum Beispiel, die uuid-ossp Erweiterung oft gebündelt mit Postgres . Diese Erweiterung kann Werte für die Versionen 1, 3 und 4 und zusätzlich ein paar Variationen erzeugen:
  • uuid_generate_v1mc() - erzeugt eine UUID der Version 1, verwendet aber eine zufällige Multicast-MAC-Adresse anstelle der echten MAC-Adresse des Computers.
  • uuid_generate_v5(namespace uuid, name text) - erzeugt eine UUID der Version 5, die wie eine UUID der Version 3 funktioniert, mit der Ausnahme, dass SHA-1 als Hashing-Methode verwendet wird.
  • Webdienst
    Zum Beispiel, UUID-Generator erstellt sowohl die Versionen 1 & 3 als auch die Nullwerte y GUID .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X