logo

Java Generer UUID

UUID er et meget brugt 128-bit langt unikt identifikationsnummer i computersystemet. Den består af hex-cifre adskilt af fire bindestreger. I dette afsnit vil vi diskutere hvad er UUID og hvordan man tilfældigt genererer UUID (version 4) i Java .

UUID

UUID står for Universelt unik identifikator . UUID'er er standardiseret af Open Software Foundation (OSF). Det er en del af Distributive Computing Environment (DCE). Et UUID er 36 tegn (128-bit) langt unikt nummer. Det er også kendt som en Globally Unique IDentifier (GUID).

Java Generer UUID

Brugen af ​​UUID afhænger af situationen, use cases, kompleksitet og forhold. Nogle af anvendelserne af UUID er:

  • Det bruges til at generere unikke URN (Uniform Resource Names).
  • Det kan også bruges til at generere transaktions-id'er.
  • Udbredt i en kryptografisk applikation.
  • I en webapplikation kan den bruges til at generere sessions-id'er.

Typer af UUID

Der er fire typer UUID'er:

  • Tidsbaseret UUID (version 1)
  • DCE sikkerhed UUID (version 2)
  • Navnebaseret UUID (version 3 og 5)
  • Tilfældigt genereret UUID (version 4)

Varianter af UUID

Der er mange varianter af UUID men Udvask salt variant er meget brugt. Layoutet af variant 2 dvs. Udvask salt er som følgende:

MSB'erne består af følgende usignerede felter:

0xFFFFFFFF00000000 time_low

0x00000000FFFF0000 time_mid

0x000000000000F000 version

0x0000000000000FFF time_hi

LSB'erne består af følgende usignerede felter:

0xC000000000000000 variant

0x3FFF000000000000 clock_seq

0x0000FFFFFFFFFFFF node

Variantfeltet indeholder en værdi, der identificerer layoutet af UUID. Det ovenfor omtalte layout er kun gyldigt for variant 2.

Java UUID klasse

Til at generere UUID , Java-programmeringssproget giver UUID-klassen. Klassen tilhører java.util pakke. Det udvider Object-klassen og implementerer kan serialiseres og sammenlignelig interface. Klassen genererer et uforanderligt UUID, der repræsenterer en 128-bit værdi.

Java UUID klassemetoder

Metoder Beskrivelse
clockSequence() Den returnerer den ursekvensværdi, der er knyttet til denne specificerede UUID.
sammenligne med() Metoden sammenligner UUID'et med det specifikke UUID.
lige med() Metoden sammenligner dette objekt med det angivne objekt.
fromString() Det genererer et UUID fra String-repræsentationen.
getLeastSignificantBits() Det returnerer de mindst signifikante 64 bit af denne UUID's 128-bit værdi.
getMostSignificantBits() Det returnerer de mest signifikante 64 bit af denne UUID's 128-bit værdi.
hashCode() Det returnerer en hash-kode for denne UUID.
navnUUIDFromBytes() Den henter et version-3 (navnebaseret) UUID baseret på det angivne byte-array.
node() Det returnerer en nodeværdi, der er knyttet til den angivne UUID.
randomUUID() Det returnerer et tilfældigt genereret UUID.
tidsstempel() Det returnerer en tidsstempelværdi, der er knyttet til denne angivne UUID.
toString() Det returnerer et String-objekt, der repræsenterer denne UUID.
variant() Det bruges til at få varianten tilknyttet det angivne UUID.
version() Vi kan få versionsnummeret tilknyttet det angivne UUID.

Generering af et UUID

Følgende eksempel genererer et tilfældigt UUID.

UUIDEeksempel.java

 import java.util.UUID; public class UUIDExample { public static void main(String args[]) { //generates random UUID UUID uuid=UUID.randomUUID(); System.out.println(uuid); } } 

Produktion:

 2b733549-d2cc-40f0-b7f3-9bfa9f3c1b89 

Konverter fra en streng til en UUID

StringToUUIDExample.java

 import java.util.UUID; public class StringtoUUIDExample { public static void main(String args[]) { //randomly generates a UUID UUID uuid = UUID.randomUUID(); System.out.println('Randomly Generated UUID: '+uuid); //converts the randomly generated UUID into String String uuidAsString = uuid.toString(); System.out.println('UUID as String: '+uuidAsString); //generates a UUID from the String UUID sameUuid = UUID.fromString(uuidAsString); System.out.println('UUID from String: '+sameUuid); //compares UUID generated from the string with the randomly generated UUID System.out.println(sameUuid.equals(uuid)); } } 

Produktion:

 Randomly Generated UUID: fe8a03d7-6495-4231-9843-8ee2f5282620 UUID as String: fe8a03d7-6495-4231-9843-8ee2f5282620 UUID from String: fe8a03d7-6495-4231-9843-8ee2f5282620 true