logo

Java Generate UUID

UUID це широко використовуваний 128-бітний унікальний ідентифікаційний номер у комп’ютерній системі. Він складається з шістнадцяткових цифр, розділених чотирма дефісами. У цьому розділі ми обговоримо що таке UUID і як випадково згенерувати UUID (версія 4) у Java .

UUID

UUID виступає за Універсальний унікальний ідентифікатор . UUID стандартизовано Open Software Foundation (OSF). Це частина розподіленого обчислювального середовища (DCE). UUID — це унікальний номер із 36 символів (128 біт). Він також відомий як a Глобально унікальний ідентифікатор (GUID).

Java Generate UUID

Використання 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