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).
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