UUID 컴퓨터 시스템에서 널리 사용되는 128비트 길이의 고유 식별 번호입니다. 4개의 하이픈으로 구분된 16진수로 구성됩니다. 이 섹션에서는 다음 내용을 논의하겠습니다. UUID는 무엇입니까 그리고 Java에서 UUID(버전 4)를 무작위로 생성하는 방법 .
UUID
UUID 약자 보편적으로 고유한 식별자 . UUID는 OSF(Open Software Foundation)에 의해 표준화되었습니다. 이는 분산 컴퓨팅 환경(DCE)의 일부입니다. UUID는 36자(128비트) 길이의 고유 번호입니다. 그것은 또한 전역 고유 식별자(GUID).
파워셸과 배쉬
UUID의 사용은 상황, 사용 사례, 복잡성 및 조건에 따라 다릅니다. UUID의 용도는 다음과 같습니다.
- 고유한 URN(Uniform Resource Names)을 생성하는 데 사용됩니다.
- 거래 ID를 생성하는 데에도 사용할 수 있습니다.
- 암호화 응용 프로그램에 널리 사용됩니다.
- 웹 애플리케이션에서는 세션 ID를 생성하는 데 사용될 수 있습니다.
UUID의 유형
UUID에는 네 가지 유형이 있습니다.
- 시간 기반 UUID(버전 1)
- DCE 보안 UUID(버전 2)
- 이름 기반 UUID(버전 3 및 5)
- 무작위로 생성된 UUID(버전 4)
UUID의 변형
UUID에는 다양한 변형이 있지만 소금 침출 변형이 널리 사용됩니다. 변형 2의 레이아웃, 즉 소금 침출 다음과 같다:
MSB는 다음과 같은 서명되지 않은 필드로 구성됩니다.
0xFFFFFFFF00000000 시간_낮음
0x00000000FFFF0000 시간_중간
0x000000000000F000 버전
0x0000000000000FFF 시간_안녕
LSB는 다음과 같은 부호 없는 필드로 구성됩니다.
0xC000000000000000 변형
0x3FFF000000000000 clock_seq
0x0000FFFFFFFFFFFF 노드
변형 필드에는 UUID의 레이아웃을 식별하는 값이 들어 있습니다. 위에서 설명한 레이아웃은 변형 2에만 유효합니다.
문자열 대체 자바
자바 UUID 클래스
생성을 위해 UUID , Java 프로그래밍 언어는 UUID 클래스를 제공합니다. 클래스가 속한 java.util 패키지. Object 클래스를 확장하고 다음을 구현합니다. 직렬화 가능 그리고 유사한 상호 작용. 클래스는 128비트 값을 나타내는 변경할 수 없는 UUID를 생성합니다.
Java UUID 클래스 메소드
행동 양식 | 설명 |
---|---|
시계순서() | 이 지정된 UUID와 연관된 시계 시퀀스 값을 반환합니다. |
비교 대상() | 이 메서드는 UUID를 특정 UUID와 비교합니다. |
같음() | 메서드는 이 개체를 지정된 개체와 비교합니다. |
문자열()에서 | 문자열 표현에서 UUID를 생성합니다. |
getLeastSignificantBits() | 이 UUID의 128비트 값 중 최하위 64비트를 반환합니다. |
getMostSignificantBits() | 이 UUID의 128비트 값 중 가장 중요한 64비트를 반환합니다. |
해시 코드() | 이 UUID에 대한 해시 코드를 반환합니다. |
이름UUIDFromBytes() | 지정된 바이트 배열을 기반으로 버전 3(이름 기반) UUID를 검색합니다. |
마디() | 지정된 UUID와 연결된 노드 값을 반환합니다. |
무작위UUID() | 무작위로 생성된 UUID를 반환합니다. |
타임스탬프() | 지정된 UUID와 연관된 타임스탬프 값을 반환합니다. |
toString() | 이 UUID를 나타내는 String 객체를 반환합니다. |
변종() | 지정된 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