Java로 GUID를 만드는 가장 좋은 방법은 무엇입니까?
답변
Java 5 이상에 번들로 제공되는 UUID 클래스를 살펴보십시오 .
예를 들면 다음과 같습니다.
- 임의의 UUID를 원하는 경우 randomUUID 메소드를 사용할 수 있습니다 .
- UUID를 특정 값으로 초기화하려면 UUID 생성자 또는 fromString 메소드를 사용할 수 있습니다 .
답변
java.util.UUID.randomUUID();
답변
원하는 UUID 종류에 따라 다릅니다 .
-
표준 Java
UUID
클래스는 버전 4 (임의) UUID를 생성 합니다. ( 업데이트 – 버전 3 (이름) UUID도 생성 할 수 있습니다.) 다른 변형도 생성 할 수는 없지만 처리 할 수 있습니다. (이 경우, “핸들”수단 구성체UUID
로부터 인스턴스long
,byte[]
또는String
표현, 그리고 어떤 적절한 접근을 제공한다.) -
자바 UUID 생성기 (주전자) ‘에 의해 정의 된 UUID의 3’공식 ‘유형을 구현 취지는 지원 -4122 RFC 은 RFC 실제로 4 가지 유형을 정의하고 5 유형을 언급하지만 … “.
UUID 유형 및 변형에 대한 자세한 내용은 Wikipedia에 요약되어 있으며 세부 사항은 RFC 4122 및 기타 사양에 있습니다.
답변
Mark Byers의 답변을 예제로 확장하면됩니다.
import java.util.UUID;
public class RandomStringUUID {
public static void main(String[] args) {
UUID uuid = UUID.randomUUID();
System.out.println("UUID=" + uuid.toString() );
}
}
답변
Java 외부에 도달
Java 내 에서 UUID 값을 생성하는 것은 보안 문제로 인해 버전 4 (임의)로 제한됩니다 .
다른 버전의 UUID를 원하는 경우 다음 중 하나 를 호출 하여 Java 앱이 JVM 외부에 도달 하여 UUID를 생성하도록 할 수 있습니다.
- 명령 줄 유틸리티
거의 모든 운영 체제에 번들로 제공됩니다.
예를 들어uuidgen
Mac OS X, BSD 및 Linux에 있습니다. - 데이터베이스 서버 JDBC 를
사용 하여 데이터베이스 서버에서 생성 된 UUID를 검색 하십시오 . 예를 들어, 확장 프로그램은 종종 Postgres 와 번들로 제공됩니다 . 이 확장은 버전 1, 3 및 4 값과 몇 가지 변형을 생성 할 수 있습니다.uuid_generate_v1mc()
– 버전 1 UUID를 생성하지만 컴퓨터의 실제 MAC 주소 대신 임의의 멀티 캐스트 MAC 주소를 사용합니다.uuid_generate_v5(namespace uuid, name text)
– SHA-1이 해싱 방법으로 사용되는 것을 제외하고 버전 3 UUID와 같은 버전 5 UUID를 생성합니다.
- 웹 서비스
예를 들어 UUID Generator는 버전 1 및 3과 nil 값 및 GUID를 작성 합니다.