UUID egy széles körben használt 128 bites egyedi azonosító szám a számítógépes rendszerben. Négy kötőjellel elválasztott hexa számjegyekből áll. Ebben a részben megvitatjuk mi az UUID és hogyan lehet véletlenszerűen létrehozni az UUID-t (4-es verzió) Java-ban .
UUID
UUID jelentése Univerzálisan egyedi azonosító . Az UUID-ket az Open Software Foundation (OSF) szabványosította. A Distributive Computing Environment (DCE) része. Az UUID 36 karakter (128 bit) hosszú egyedi szám. Más néven a Globálisan egyedi azonosító (GUID).
Az UUID használata a helyzettől, a használati esetektől, a bonyolultságtól és a feltételektől függ. Az UUID néhány felhasználási módja:
- Egyedi URN (Uniform Resource Names) generálására szolgál.
- Tranzakcióazonosítók generálására is használható.
- Széles körben használják kriptográfiai alkalmazásokban.
- Webes alkalmazásban munkamenet-azonosítók generálására használható.
Az UUID típusai
Négyféle UUID létezik:
int string
- Időalapú UUID (1. verzió)
- DCE biztonsági UUID (2-es verzió)
- Név alapú UUID (3. és 5. verzió)
- Véletlenszerűen generált UUID (4-es verzió)
Az UUID változatai
Az UUID-nek számos változata létezik, de Lúzza ki a sót változatát széles körben használják. A 2. változat elrendezése i.e. Lúzza ki a sót az alábbiak:
Az MSB-k a következő aláíratlan mezőkből állnak:
0xFFFFFFFF00000000 time_low
0x00000000FFFF0000 time_mid
0x000000000000F000 verzió
0x0000000000000FFF time_hi
Az LSB-k a következő előjel nélküli mezőkből állnak:
0xC000000000000000 változat
0x3FFF000000000000 clock_seq
0x0000FFFFFFFFFFFF csomópont
A változat mező egy értéket tartalmaz, amely azonosítja az UUID elrendezését. A fent tárgyalt elrendezés csak a 2. változatra érvényes.
Java UUID osztály
A generáláshoz a UUID , a Java programozási nyelv biztosítja az UUID osztályt. Az osztályhoz tartozik java.util csomag. Kibővíti az Object osztályt és megvalósítja a szerializálható és hasonló felület. Az osztály egy megváltoztathatatlan UUID-t generál, amely 128 bites értéket képvisel.
Java UUID osztály módszerei
Mód | Leírás |
---|---|
clockSequence() | Visszaadja a megadott UUID-hez társított órajelsorozat értékét. |
összehasonlítani() | A módszer összehasonlítja az UUID-t az adott UUID-vel. |
egyenlő () | A metódus összehasonlítja ezt az objektumot a megadott objektummal. |
fromString() | Létrehoz egy UUID-t a String reprezentációból. |
getLeastSignificantBits() | Az UUID 128 bites értékéből a legkevésbé jelentős 64 bitet adja vissza. |
getMostSignificantBits() | Az UUID 128 bites értékének legjelentősebb 64 bitjét adja vissza. |
hash kód() | Egy hash kódot ad vissza ehhez az UUID-hez. |
névUUIDFromBytes() | A 3-as verziójú (név alapú) UUID-t kéri le a megadott bájttömb alapján. |
csomópont() | Egy csomópontértéket ad vissza, amely a megadott UUID-hez van társítva. |
randomUUID() | Véletlenszerűen generált UUID-t ad vissza. |
időbélyeg() | A megadott UUID-hez társított időbélyegértéket ad vissza. |
toString() | Egy karakterlánc objektumot ad vissza, amely ezt az UUID-t reprezentálja. |
változat() | A megadott UUID-hez társított változat lekérésére szolgál. |
változat() | Megkaphatjuk a megadott UUID-hez társított verziószámot. |
UUID generálása
A következő példa egy véletlenszerű UUID-t generál.
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); } }
Kimenet:
2b733549-d2cc-40f0-b7f3-9bfa9f3c1b89
Konvertálása karakterláncból UUID-vé
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)); } }
Kimenet:
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