UUID er et mye brukt 128-bit langt unikt identifikasjonsnummer i datasystemet. Den består av sekskantede sifre atskilt med fire bindestreker. I denne delen vil vi diskutere hva er UUID og hvordan tilfeldig generere UUID (versjon 4) i Java .
UUID
UUID står for Universelt unik identifikator . UUID-er er standardisert av Open Software Foundation (OSF). Det er en del av Distributive Computing Environment (DCE). En UUID er 36 tegn (128-bit) langt unikt nummer. Det er også kjent som en Globalt unik IDentifier (GUID).
Bruken av UUID avhenger av situasjonen, brukstilfeller, kompleksitet og forhold. Noen av bruken av UUID er:
- Den brukes til å generere unike URN (Uniform Resource Names).
- Den kan også brukes til å generere transaksjons-IDer.
- Mye brukt i en kryptografisk applikasjon.
- I en nettapplikasjon kan den brukes til å generere økt-IDer.
Typer UUID
Det er fire typer UUID-er:
- Tidsbasert UUID (versjon 1)
- DCE-sikkerhet UUID (versjon 2)
- Navnebasert UUID (versjon 3 og 5)
- Tilfeldig generert UUID (versjon 4)
Varianter av UUID
Det finnes mange varianter av UUID men Utlut salt variant er mye brukt. Oppsettet til variant 2 dvs. Utlut salt er som følgende:
MSB-ene består av følgende usignerte felt:
0xFFFFFFFF00000000 time_low
0x00000000FFFF0000 time_mid
0x000000000000F000 versjon
0x0000000000000FFF time_hei
LSB-ene består av følgende usignerte felt:
0xC0000000000000000 variant
0x3FFF000000000000 klokkesekvens
0x0000FFFFFFFFFFFF node
Variantfeltet inneholder en verdi som identifiserer utformingen av UUID. Oppsettet ovenfor er kun gyldig for variant 2.
Java UUID klasse
For å generere UUID , gir programmeringsspråket Java UUID-klassen. Klassen tilhører java.util pakke. Den utvider Object-klassen og implementerer serialiserbar og sammenlignbare grensesnitt. Klassen genererer en uforanderlig UUID som representerer en 128-bits verdi.
Java UUID-klassemetoder
Metoder | Beskrivelse |
---|---|
clockSequence() | Den returnerer klokkesekvensverdien knyttet til denne spesifiserte UUID. |
sammenligne med() | Metoden sammenligner UUID med den spesifikke UUID. |
er lik() | Metoden sammenligner dette objektet med det spesifiserte objektet. |
fromString() | Den genererer en UUID fra String-representasjonen. |
getLeastSignificantBits() | Den returnerer de minst signifikante 64 bitene av denne UUIDs 128-bits verdi. |
getMostSignificantBits() | Den returnerer de mest betydningsfulle 64 bitene av denne UUIDs 128-bits verdi. |
hashkode() | Den returnerer en hash-kode for denne UUID. |
navnUUIDFromBytes() | Den henter en versjon-3 (navnbasert) UUID basert på den angitte byte-arrayen. |
node() | Den returnerer en nodeverdi som er knyttet til den angitte UUID. |
randomUUID() | Den returnerer en tilfeldig generert UUID. |
tidsstempel() | Den returnerer en tidsstempelverdi knyttet til denne angitte UUID. |
toString() | Den returnerer et String-objekt som representerer denne UUID. |
variant() | Den brukes for å få varianten knyttet til den angitte UUID. |
versjon() | Vi kan få versjonsnummeret knyttet til den angitte UUID. |
Generer en UUID
Følgende eksempel genererer en tilfeldig 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); } }
Produksjon:
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)); } }
Produksjon:
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