UUID je široce používané 128bitové jedinečné identifikační číslo v počítačovém systému. Skládá se z hexadecimálních číslic oddělených čtyřmi pomlčkami. V této části budeme diskutovat co je UUID a jak náhodně vygenerovat UUID (verze 4) v Javě .
UUID
UUID znamená Univerzálně jedinečný identifikátor . UUID jsou standardizována Open Software Foundation (OSF). Je součástí distributivního výpočetního prostředí (DCE). UUID je jedinečné číslo dlouhé 36 znaků (128 bitů). Je také známý jako a Globálně jedinečný identifikátor (GUID).
Použití UUID závisí na situaci, případech použití, složitosti a podmínkách. Některá z použití UUID jsou:
- Používá se ke generování jedinečných URN (Uniform Resource Names).
- Lze jej také použít ke generování ID transakcí.
- Široce používané v kryptografických aplikacích.
- Ve webové aplikaci jej lze použít ke generování ID relací.
Typy UUID
Existují čtyři typy UUID:
- UUID založené na čase (verze 1)
- UUID zabezpečení DCE (verze 2)
- UUID podle názvu (verze 3 a 5)
- Náhodně generované UUID (verze 4)
Varianty UUID
Existuje mnoho variant UUID ale Sůl louhovat varianta je široce používána. Dispozice varianty 2 tzn. Sůl louhovat je následující:
MSB se skládá z následujících nepodepsaných polí:
0xFFFFFFFF00000000 time_low
java hashmap
0x00000000FFFF0000 time_mid
Verze 0x00000000000F000
0x0000000000000FFF time_hi
LSB se skládá z následujících nepodepsaných polí:
Varianta 0xC000000000000000
0x3FFF000000000000 clock_seq
0x0000FFFFFFFFFFFF uzel
Pole variant obsahuje hodnotu, která identifikuje rozložení UUID. Výše diskutované rozložení platí pouze pro variantu 2.
Třída Java UUID
Pro generování UUID , programovací jazyk Java poskytuje třídu UUID. Třída patří do java.util balík. Rozšiřuje třídu Object a implementuje serializovatelný a srovnatelný rozhraní. Třída generuje neměnný UUID, který představuje 128bitovou hodnotu.
Metody třídy Java UUID
Metody | Popis |
---|---|
clockSequence() | Vrací hodnotu sekvence hodin přidruženou k tomuto zadanému UUID. |
porovnat s() | Metoda porovná UUID se specifickým UUID. |
rovná se() | Metoda porovná tento objekt se zadaným objektem. |
fromString() | Generuje UUID z reprezentace řetězce. |
getLeastSignificantBits() | Vrací nejméně významných 64 bitů ze 128bitové hodnoty tohoto UUID. |
getMostSignificantBits() | Vrací nejvýznamnějších 64 bitů ze 128bitové hodnoty tohoto UUID. |
hashCode() | Vrátí hash kód pro toto UUID. |
názevUUIDFromBytes() | Načte UUID verze 3 (na základě názvu) na základě zadaného pole bajtů. |
uzel() | Vrátí hodnotu uzlu, která je přidružena k zadanému UUID. |
randomUUID() | Vrací náhodně generované UUID. |
časové razítko() | Vrátí hodnotu časového razítka přidruženou k tomuto zadanému UUID. |
toString() | Vrátí objekt String představující toto UUID. |
varianta() | Používá se k získání varianty spojené se zadaným UUID. |
verze() | Můžeme získat číslo verze spojené se zadaným UUID. |
Generování UUID
Následující příklad generuje náhodné UUID.
UUIDEpří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ýstup:
2b733549-d2cc-40f0-b7f3-9bfa9f3c1b89
Převést z řetězce na UUID
StringToUUIDEexample.java
dělat, zatímco 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ýstup:
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