UUID це широко використовуваний 128-бітний унікальний ідентифікаційний номер у комп’ютерній системі. Він складається з шістнадцяткових цифр, розділених чотирма дефісами. У цьому розділі ми обговоримо що таке UUID і як випадково згенерувати UUID (версія 4) у Java .
UUID
UUID виступає за Універсальний унікальний ідентифікатор . UUID стандартизовано Open Software Foundation (OSF). Це частина розподіленого обчислювального середовища (DCE). UUID — це унікальний номер із 36 символів (128 біт). Він також відомий як a Глобально унікальний ідентифікатор (GUID).
Використання UUID залежить від ситуації, випадків використання, складності та умов. Ось деякі з застосувань UUID:
- Він використовується для створення унікальних URN (уніфікованих імен ресурсів).
- Його також можна використовувати для створення ідентифікаторів транзакцій.
- Широко використовується в криптографічних програмах.
- У веб-додатку його можна використовувати для створення ідентифікаторів сеансу.
Типи UUID
Є чотири типи UUID:
- UUID на основі часу (версія 1)
- UUID безпеки DCE (версія 2)
- UUID на основі імен (версії 3 і 5)
- Випадково згенерований UUID (версія 4)
Варіанти UUID
Існує багато варіантів UUID, але Вилуговувати сіль Варіант широко використовується. Макет варіанту 2, тобто Вилуговувати сіль полягає в наступному:
MSB складається з таких полів без знаку:
0xFFFFFFFF00000000 time_low
0x00000000FFFF0000 time_mid
Версія 0x000000000000F000
0x0000000000000FFF time_hi
LSB складається з таких полів без знаку:
0xC000000000000000 варіант
0x3FFF000000000000 clock_seq
0x0000FFFFFFFFFFFF вузол
Поле варіанту містить значення, яке визначає макет UUID. Розглянута вище компоновка дійсна лише для варіанту 2.
Клас Java UUID
Для створення UUID , мова програмування Java надає клас UUID. Клас належить до java.util пакет. Він розширює клас Object і реалізує серіалізований і порівнянний інтерфейс. Клас генерує незмінний UUID, який представляє 128-бітне значення.
Методи класу Java UUID
методи | опис |
---|---|
clockSequence() | Він повертає значення тактової послідовності, пов’язане з вказаним UUID. |
порівняти() | Метод порівнює UUID з конкретним UUID. |
дорівнює() | Метод порівнює цей об’єкт із зазначеним об’єктом. |
fromString() | Він генерує UUID із представлення String. |
getLeastSignificantBits() | Він повертає молодші 64 біти 128-бітного значення цього UUID. |
getMostSignificantBits() | Він повертає старші 64 біти 128-бітного значення цього UUID. |
hashCode() | Він повертає хеш-код для цього UUID. |
nameUUIDFromBytes() | Він отримує UUID версії 3 (на основі імені) на основі вказаного масиву байтів. |
вузол() | Він повертає значення вузла, пов’язане з указаним UUID. |
randomUUID() | Він повертає випадково згенерований UUID. |
timestamp() | Він повертає значення мітки часу, пов’язане з вказаним UUID. |
toString() | Він повертає об’єкт String, що представляє цей UUID. |
варіант() | Він використовується для отримання варіанту, пов’язаного з указаним UUID. |
версія() | Ми можемо отримати номер версії, пов’язаний із вказаним UUID. |
Створення UUID
У наступному прикладі генерується випадковий 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); } }
Вихід:
2b733549-d2cc-40f0-b7f3-9bfa9f3c1b89
Перетворення з рядка на 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)); } }
Вихід:
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