UUID je široko používané 128-bitové jedinečné identifikačné číslo v počítačovom systéme. Pozostáva z hexadecimálnych číslic oddelených štyrmi pomlčkami. V tejto časti budeme diskutovať čo je UUID a ako náhodne vygenerovať UUID (verzia 4) v jazyku Java .
UUID
UUID znamenať Univerzálne jedinečný identifikátor . UUID sú štandardizované nadáciou Open Software Foundation (OSF). Je súčasťou distribučného výpočtového prostredia (DCE). UUID je 36 znakov (128-bit) dlhé jedinečné číslo. Je tiež známy ako a Globálne jedinečný identifikátor (GUID).
Použitie UUID závisí od situácie, prípadov použitia, zložitosti a podmienok. Niektoré z použití UUID sú:
- Používa sa na generovanie jedinečných URN (Uniform Resource Names).
- Môže sa použiť aj na generovanie ID transakcií.
- Široko používaný v kryptografickej aplikácii.
- Vo webovej aplikácii sa dá použiť na generovanie ID relácie.
Typy UUID
Existujú štyri typy UUID:
funkcie java 8
- UUID založené na čase (verzia 1)
- UUID zabezpečenia DCE (verzia 2)
- UUID na základe názvu (verzia 3 a 5)
- Náhodne generované UUID (verzia 4)
Varianty UUID
Existuje mnoho variantov UUID, ale Vylúhujte soľ variant je široko používaný. Dispozičné riešenie variantu 2 t.j. Vylúhujte soľ je nasledujúca:
MSB pozostávajú z nasledujúcich nepodpísaných polí:
0xFFFFFFFF00000000 time_low
java konvertuje celé číslo na reťazec
0x00000000FFFF0000 čas_stred
Verzia 0x00000000000F000
0x000000000000FFF time_hi
LSB pozostáva z nasledujúcich nepodpísaných polí:
zoznam triediacich polí java
0xC000000000000000 variant
0x3FFF000000000000 clock_seq
0x0000FFFFFFFFFFFF uzol
Pole variant obsahuje hodnotu, ktorá identifikuje rozloženie UUID. Vyššie diskutované usporiadanie platí len pre variant 2.
Trieda Java UUID
Na generovanie UUID , programovací jazyk Java poskytuje triedu UUID. Trieda patrí do java.util balík. Rozširuje triedu Object a implementuje serializovateľné a porovnateľné rozhranie. Trieda generuje nemenné UUID, ktoré predstavuje 128-bitovú hodnotu.
Java metódy triedy UUID
Metódy | Popis |
---|---|
clockSequence() | Vráti hodnotu sekvencie hodín priradenú k tomuto zadanému UUID. |
porovnať s() | Metóda porovnáva UUID so špecifickým UUID. |
rovná sa() | Metóda porovnáva tento objekt so zadaným objektom. |
fromString() | Generuje UUID z reprezentácie reťazca. |
getLeastSignificantBits() | Vráti najmenej významných 64 bitov zo 128-bitovej hodnoty tohto UUID. |
getMostSignificantBits() | Vráti najvýznamnejších 64 bitov zo 128-bitovej hodnoty tohto UUID. |
hashCode() | Vráti hash kód pre toto UUID. |
nameUUIDFromBytes() | Získava UUID verzie 3 (založené na názve) na základe zadaného poľa bajtov. |
uzol() | Vráti hodnotu uzla, ktorá je spojená so zadaným UUID. |
randomUUID() | Vracia náhodne vygenerované UUID. |
časová značka() | Vráti hodnotu časovej pečiatky spojenú s týmto zadaným UUID. |
natiahnuť() | Vracia objekt typu String predstavujúci toto UUID. |
varianta() | Používa sa na získanie variantu spojeného so zadaným UUID. |
verzia() | Môžeme získať číslo verzie spojené so zadaným UUID. |
Generovanie UUID
Nasledujúci príklad generuje náhodné UUID.
dĺžka bash struny
UUIDEpríklad.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); } }
Výkon:
2b733549-d2cc-40f0-b7f3-9bfa9f3c1b89
Konvertovať z reťazca na UUID
StringToUUIDEexample.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)); } }
Výkon:
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