UUID široko je korišten 128-bitni jedinstveni identifikacijski broj u računalnom sustavu. Sastoji se od heksadecimalnih znamenki odvojenih s četiri crtice. U ovom odjeljku ćemo raspravljati što je UUID i kako nasumično generirati UUID (verzija 4) u Javi .
UUID
UUID stoji za Univerzalno jedinstveni identifikator . UUID-ove standardizira Open Software Foundation (OSF). Dio je distributivnog računalnog okruženja (DCE). UUID je jedinstveni broj od 36 znakova (128 bita). Također je poznat kao a Globalno jedinstveni identifikator (GUID).
Upotreba UUID-a ovisi o situaciji, slučajevima upotrebe, složenosti i uvjetima. Neke od upotreba UUID-a su:
java logo
- Koristi se za generiranje jedinstvenog URN-a (Uniform Resource Names).
- Također se može koristiti za generiranje ID-ova transakcija.
- Široko korišten u kriptografskim aplikacijama.
- U web aplikaciji može se koristiti za generiranje ID-ova sesije.
Vrste UUID-a
Postoje četiri vrste UUID-ova:
- UUID temeljen na vremenu (verzija 1)
- DCE sigurnosni UUID (verzija 2)
- UUID temeljen na nazivu (verzije 3 i 5)
- Nasumično generirani UUID (verzija 4)
Varijante UUID-a
Postoje mnoge varijante UUID-a ali Sol za ispiranje varijanta se široko koristi. Izgled varijante 2 tj. Sol za ispiranje je kako slijedi:
MSB se sastoji od sljedećih nepredpisanih polja:
0xFFFFFFFF00000000 nisko vrijeme
0x00000000FFFF0000 sredina vremena
0x000000000000F000 verzija
broj abecede
0x0000000000000FFF vrijeme_bok
LSB se sastoji od sljedećih nepredpisanih polja:
0xC000000000000000 varijanta
0x3FFF000000000000 clock_seq
0x0000FFFFFFFFFFFF čvor
Polje varijante sadrži vrijednost koja identificira izgled UUID-a. Gore spomenuti raspored vrijedi samo za varijantu 2.
Java UUID klasa
Za generiranje UUID , programski jezik Java pruža UUID klasu. Razred pripada java.util paket. Proširuje klasu Object i implementira koji se može serijalizirati i usporediv sučelje. Klasa generira nepromjenjivi UUID koji predstavlja 128-bitnu vrijednost.
Java UUID metode klase
Metode | Opis |
---|---|
clockSequence() | Vraća vrijednost sekvence sata pridruženu ovom navedenom UUID-u. |
usporedi s() | Metoda uspoređuje UUID s određenim UUID-om. |
jednako() | Metoda uspoređuje ovaj objekt s navedenim objektom. |
fromString() | Generira UUID iz String reprezentacije. |
getLeastSignificantBits() | Vraća 64 bita najmanjeg značaja od 128-bitne vrijednosti ovog UUID-a. |
getMostSignificantBits() | Vraća najznačajnijih 64 bita od 128-bitne vrijednosti ovog UUID-a. |
hashCode() | Vraća hash kod za ovaj UUID. |
imeUUIDFromBytes() | Dohvaća UUID verzije 3 (temeljen na imenu) na temelju navedenog niza bajtova. |
čvor() | Vraća vrijednost čvora koja je povezana s navedenim UUID-om. |
slučajniUUID() | Vraća nasumično generirani UUID. |
vremenska oznaka() | Vraća vrijednost vremenske oznake pridruženu ovom navedenom UUID-u. |
toString() | Vraća String objekt koji predstavlja ovaj UUID. |
varijanta() | Koristi se za dobivanje varijante povezane s navedenim UUID-om. |
verzija() | Možemo dobiti broj verzije povezan s navedenim UUID-om. |
Generiranje UUID-a
Sljedeći primjer generira nasumični UUID.
UUIDExample.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); } }
Izlaz:
2b733549-d2cc-40f0-b7f3-9bfa9f3c1b89
Pretvori iz niza u UUID
StringToUUIDExample.java
gdje su postavke preglednika
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)); } }
Izlaz:
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