UUID UUID Generator

무료 · 회원가입 없음 · 설치 없음

UUID v3 생성기

네임스페이스와 이름을 MD5로 해시해 UUID v3를 만듭니다. 같은 입력에는 언제나 같은 값이 나옵니다.

  • MD5 해시
  • 결정적
  • 네임스페이스 기반

UUID v3 생성기

v3
범위는 1~1000입니다.
형식

결과 0

    모든 값은 사용자의 기기에서 Web Crypto API로 생성되며, 브라우저 밖으로 전송되지 않습니다. 단축키: Ctrl + Enter — 다시 생성

    UUID v3 개요

    UUID v3는 이름 기반(name-based) 버전입니다. 네임스페이스 UUID와 이름을 이어 붙여 MD5로 해시한 뒤, 그 결과를 128비트 UUID로 정리합니다. 그래서 무작위성이 전혀 없습니다.

    값이 입력에서 결정되므로 어느 시스템에서 계산하든 결과가 같습니다. 대신 MD5가 암호학적으로 안전하지 않다는 점 때문에, 새로 설계한다면 SHA-1을 쓰는 v5를 권합니다.

    사용 방법

    1. v3를 선택합니다 (이 페이지에서는 이미 선택되어 있습니다).
    2. 네임스페이스를 고릅니다. 기본값은 DNS입니다.
    3. 이름을 입력합니다. 예를 들어 example.com.
    4. UUID 생성을 누릅니다. 같은 입력이면 결과도 같습니다.

    사용 사례

    • 외부 시스템이 정한 키에 안정적인 식별자를 붙일 때. 예를 들어 도메인이나 이메일 주소.
    • 여러 서비스가 같은 입력에서 같은 UUID를 계산해야 하는 경우.
    • MD5를 반드시 써야 한다고 규정된 기존 규격을 따를 때.

    구조

    MD5 해시 결과의 앞부분을 UUID로 옮기고, 13번째 16진수를 버전(3)으로, 17번째를 변형 번호로 고정합니다. 나머지 122비트는 모두 해시에서 나옵니다.

    UUID v3의 역할

    어떤 옵션을 언제 써야 할까
    옵션사용 시점
    v3MD5 기반. 규격이 MD5를 요구할 때만
    v5SHA-1 기반이라 같은 목적에 더 적합합니다
    v4입력과 무관한 난수 값이 필요할 때

    UUID 버전 한눈에 보기

    버전정렬 가능값의 출처적합한 용도
    v1불가능타임스탬프 + MAC 주소v1을 계속 쓰는 기존 시스템
    v3불가능이름의 MD5 해시MD5를 꼭 써야 하는 결정적 식별자
    v4불가능122비트 난수대부분의 일반적인 고유 식별자
    v5불가능이름의 SHA-1 해시같은 이름에서 항상 같은 식별자가 필요할 때
    v6가능재배열한 타임스탬프난수성과 정렬을 함께 원할 때
    v7가능밀리초 단위 Unix 시간데이터베이스 기본 키와 이벤트 식별자
    v8불가능사용자 정의 비트 레이아웃사내 형식과 실험적 용도

    일곱 버전 모두 128비트이고, 모두 같은 8-4-4-4-12 표기법으로 표현합니다. 차이는 각 비트가 무엇을 담는지뿐입니다.

    코드 예제

    javascript

    // MD5 구현이 필요합니다
    // 예: js-md5 + 직접 조립
    const id = uuidv3('example.com', NAMESPACE_DNS);

    python

    import uuid
    id = str(uuid.uuid3(uuid.NAMESPACE_DNS, 'example.com'))

    java

    UUID id = UUID.nameUUIDFromBytes("example.com".getBytes());

    csharp

    // .NET에는 v3 생성기가 없습니다

    sql

    -- 보통 애플리케이션에서 계산해 저장합니다

    자주 묻는 질문

    v3 결과가 항상 같은 게 정상인가요?

    정상입니다. v3는 입력에서 결정되는 값이라 무작위성이 없습니다. 매번 다른 값이 필요하면 v4를 쓰세요.

    v3와 v5 중 무엇을 써야 하나요?

    새로 만든다면 v5를 권합니다. 둘의 구조는 같고 해시 함수만 다른데, MD5는 충돌 공격이 알려져 있습니다.

    네임스페이스는 무엇인가요?

    이름을 해시할 때 앞에 붙이는 고정 UUID입니다. RFC 4122는 DNS, URL, OID, X.500 네 가지를 정의해 두었고, 목적에 맞는 것을 고르면 됩니다.