logo

Java Генериране на UUID

UUID е широко използван 128-битов уникален идентификационен номер в компютърната система. Състои се от шестнадесетични цифри, разделени с четири тирета. В този раздел ще обсъдим какво е UUID и как произволно да генерирате UUID (версия 4) в Java .

UUID

UUID означава Универсално уникален идентификатор . UUID са стандартизирани от Open Software Foundation (OSF). Той е част от Distributive Computing Environment (DCE). UUID е уникален номер с дължина 36 знака (128 бита). Известен е още като a Глобален уникален идентификатор (GUID).

Java Генериране на UUID

Използването на UUID зависи от ситуацията, случаите на употреба, сложността и условията. Някои от употребите на UUID са:

  • Използва се за генериране на уникален URN (Uniform Resource Names).
  • Може да се използва и за генериране на идентификатори на транзакции.
  • Широко използван в криптографско приложение.
  • В уеб приложение може да се използва за генериране на идентификатори на сесии.

Видове UUID

Има четири вида UUID:

  • Базиран на времето UUID (версия 1)
  • DCE защитен UUID (версия 2)
  • Базиран на име UUID (версия 3 и 5)
  • Произволно генериран UUID (версия 4)

Варианти на UUID

Има много варианти на UUID, но Сол за излугване вариантът е широко използван. Оформлението на вариант 2, т.е. Сол за излугване е както следва:

MSB се състои от следните неподписани полета:

0xFFFFFFFF00000000 ниско време

0x00000000FFFF0000 време_среда

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 от представянето на низ.
getLeastSignificantBits() Той връща най-малко значимите 64 бита от 128-битовата стойност на този UUID.
getMostSignificantBits() Той връща най-значимите 64 бита от 128-битовата стойност на този UUID.
хеш код() Той връща хеш код за този UUID.
имеUUIDFromBytes() Той извлича версия-3 (базиран на име) UUID въз основа на посочения байтов масив.
възел () Той връща стойност на възел, която е свързана с посочения UUID.
randomUUID() Той връща произволно генериран UUID.
клеймо за време () Връща стойност на клеймо за време, свързана с този указан 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