UUID és un número d'identificació únic de 128 bits molt utilitzat al sistema informàtic. Consta de dígits hexadecimals separats per quatre guions. En aquesta secció, parlarem què és UUID i com generar aleatòriament UUID (versió 4) a Java .
UUID
UUID significa Identificador únic universal . Els UUID estan estandarditzats per l'Open Software Foundation (OSF). Forma part de l'entorn de computació distributiva (DCE). Un UUID és un nombre únic de 36 caràcters (128 bits). També es coneix com a Identificador únic global (GUID).
L'ús de l'UUID depèn de la situació, els casos d'ús, la complexitat i les condicions. Alguns dels usos de l'UUID són:
números de l'alfabet
- S'utilitza per generar URN (noms uniformes de recursos) únics.
- També es pot utilitzar per generar identificadors de transaccions.
- Molt utilitzat en una aplicació criptogràfica.
- En una aplicació web es pot utilitzar per generar identificadors de sessió.
Tipus d'UUID
Hi ha quatre tipus d'UUID:
- UUID basat en el temps (versió 1)
- UUID de seguretat DCE (versió 2)
- UUID basat en nom (versió 3 i 5)
- UUID generat aleatòriament (versió 4)
Variants de l'UUID
Hi ha moltes variants de l'UUID però Lixiviar sal variant és molt utilitzada. El disseny de la variant 2 és a dir. Lixiviar sal és el següent:
Els MSB consten dels següents camps sense signar:
0xFFFFFFFF00000000 time_low
0x00000000FFFF0000 time_mid
Versió 0x000000000000F000
convertir str en int
0x0000000000000FFF time_hi
El LSB consta dels següents camps sense signar:
0xC000000000000000 variant
0x3FFF000000000000 clock_seq
0x0000FFFFFFFFFFFF node
El camp variant conté un valor que identifica la disposició de l'UUID. El disseny comentat anteriorment només és vàlid per a la variant 2.
Classe UUID de Java
Per generar el UUID , el llenguatge de programació Java proporciona la classe UUID. La classe pertany java.util paquet. Estén la classe Object i implementa el serializable i comparables interfície. La classe genera un UUID immutable que representa un valor de 128 bits.
Mètodes de classe UUID de Java
Mètodes | Descripció |
---|---|
clockSequence() | Retorna el valor de la seqüència de rellotge associat amb aquest UUID especificat. |
comparat amb() | El mètode compara l'UUID amb l'UUID específic. |
és igual() | El mètode compara aquest objecte amb l'objecte especificat. |
fromString() | Genera un UUID a partir de la representació String. |
getLeastSignificantBits() | Retorna els 64 bits menys significatius del valor de 128 bits d'aquest UUID. |
getMostSignificantBits() | Retorna els 64 bits més significatius del valor de 128 bits d'aquest UUID. |
hashCode() | Retorna un codi hash per a aquest UUID. |
nameUUIDFromBytes() | Recupera un UUID de versió 3 (basat en nom) basat en la matriu de bytes especificada. |
node() | Retorna un valor de node associat amb l'UUID especificat. |
randomUUID() | Retorna un UUID generat aleatòriament. |
marca de temps () | Retorna un valor de marca de temps associat amb aquest UUID especificat. |
toString() | Retorna un objecte String que representa aquest UUID. |
variant() | S'utilitza per obtenir la variant associada a l'UUID especificat. |
versió () | Podem obtenir el número de versió associat amb l'UUID especificat. |
Generació d'un UUID
L'exemple següent genera un UUID aleatori.
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); } }
Sortida:
2b733549-d2cc-40f0-b7f3-9bfa9f3c1b89
Converteix d'una cadena a un UUID
StringToUUIDExample.java
convenció de nomenclatura per a 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)); } }
Sortida:
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