UUID 디코더 및 타임스탬프 추출기

UUID v1, v6 및 v7의 타임스탬프를 ISO UTC 및 Unix 시간으로 디코드한 다음 버전 및 메타데이터를 검사합니다.

다음 예시를 시도해보세요:

UUID 디코딩이란 무엇인가요?

UUID 디코딩 UUID를 분석하여 다음에 대한 정보를 추출하는 과정입니다:

  • Version: 위치 48-51의 4비트를 기준으로 어떤 UUID 버전(1-8)인지
  • Variant: 비트 64-65를 기준으로 어떤 UUID 변형(보통 RFC 4122)인지
  • Components: 버전에 따라 타임스탬프, 노드 ID 또는 기타 데이터를 추출하기
  • 생성 시각: 시간 기반 UUID(v1, v6, v7)의 경우

Example: 123e4567-e89b-12d3-a456-426614174000 타임스탬프가 포함된 버전 1 UUID입니다 2228-06-25T20:01:28.545Z JavaScript 밀리초 정밀도로 표시하면.

UUID 구조 개요

FormatDescription
8-4-4-4-12하이픈으로 구분된 32개의 16진수 숫자
버전 비트비트 48-51 (13번째 숫자)
변형 비트비트 64-65 (17번째 숫자)

버전 번호는 세 번째 그룹의 첫 번째 16진수 자리에서 나타납니다(예: 123e4567-e89b-12d3-a456-426614174000 (버전 1의 경우).

버전별 디코딩

Version디코드할 수 있는 항목
UUID v1
  • 타임스탬프(100ns 정밀도, 1582-10-15 이후)
  • MAC 주소(무작위화되지 않은 경우)
  • 충돌 회피를 위한 클록 시퀀스
UUID v3/v5
  • 네임스페이스와 이름은 해시에서 복구할 수 없습니다
  • 네임스페이스와 이름을 둘 다 알아야만 재생성할 수 있습니다
  • v3(MD5)와 v5(SHA-1)를 구별할 수 있습니다
UUID v4
  • 무작위 데이터만 포함
  • 추출 가능한 정보 없음
  • 유효한 v4 UUID인지 확인할 수 있습니다
UUID v6
  • 타임스탬프(100ns 정밀도, 1582-10-15 이후)
  • MAC 주소(무작위화되지 않은 경우)
  • 충돌 회피를 위한 클록 시퀀스
UUID v7
  • Unix 타임스탬프(밀리초 정밀도)
  • 랜덤 구성요소(디코드 불가)

UUID에서의 타임스탬프 추출

UUID 유형시간 추출 방법Epoch
UUID v1타임스탬프 구성요소를 재정렬하여 비트 0-31, 32-47, 48-59를 결합1582년 10월 15일
UUID v6비트 0-47을 비트 52-63과 결합; 비트 48-51은 버전이며 제외됨1582년 10월 15일
UUID v7비트 0-47(Unix 밀리초)을 추출1970년 1월 1일

UUID 유효성 검사 규칙

  • 형식 확인: 하이픈 포함 8-4-4-4-12의 16진수 숫자
  • 버전 확인: 13번째 문자는 1-8이어야 합니다
  • 변형 확인: 17번째 문자는 RFC 4122의 경우 8, 9, A 또는 B여야 합니다

기본 UUID 유효성 검사용 정규식:

^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

UUID v7 타임스탬프 예시

017f22e2-79b0-7cc3-98c4-dc0c0c07398f RFC 9562의 UUIDv7 테스트 벡터입니다. 처음 48비트는 Unix 밀리초이며, 디코딩하면 2022-02-22T19:22:22.000Z, 1645557742000 밀리초 또는 1645557742 seconds.

새로 생성 UUID v7또는 계속해서 Unix 타임스탬프 변환기. 이 링크들은 입력하신 UUID를 포함하지 않습니다.

실용적 응용

  • 포렌식 분석: ID가 생성된 시점 결정
  • Debugging: ID 타임스탬프를 통해 시스템 동작 추적
  • Auditing: 시간적 무결성 검증
  • 형식 검사: 잘못된 ID 감지; 유효한 UUID라고 해서 진위가 보장되지는 않습니다
  • 데이터 복구: 시간적 관계 재구성
  • 시스템 마이그레이션: 레거시 UUID 구현 세부사항 이해

MAC 주소 추출 (v1/v6)

UUID v1 및 v6의 경우 생성 시 무작위화되지 않았다면 노드 식별자(MAC 주소)를 종종 추출할 수 있습니다:

  1. UUID에서 마지막 12개의 16진수(48비트)를 추출하세요
  2. XX:XX:XX:XX:XX:XX 형태로 콜론으로 포맷하세요
  3. 멀티캐스트 비트를 검사하여 MAC 주소가 실제인지 무작위인지 확인하세요

첫 바이트에 0x01 비트가 설정되어 있으면 실제 MAC 주소가 아닌 무작위화된 노드 ID일 가능성이 높습니다.

자주 묻는 질문

UUID v4가 생성된 정확한 시점을 알 수 있나요?

아니요. UUID v4는 완전히 무작위이므로 타임스탬프 정보를 포함하지 않습니다. UUID v4 값만으로 생성 시점을 알 수 없습니다.

시간 기반 UUID의 타임스탬프는 얼마나 정확합니까?

UUID v1/v6의 타임스탬프는 100나노초 정밀도입니다. UUID v7은 밀리초 정밀도입니다. 다만 실제 시스템 시계의 정확도는 다를 수 있습니다.

UUID 버전 간에 변환할 수 있나요?

아니요. 동일한 식별값을 유지하면서 버전 간 직접 변환할 수 없습니다. 서로 구조가 근본적으로 다릅니다.

UUID를 생성한 컴퓨터를 식별할 수 있나요?

노드 ID가 무작위화되지 않았다면 UUID v1에는 생성 시스템의 MAC 주소가 포함될 수 있습니다. 그러나 많은 최신 구현에서는 프라이버시를 위해 이를 무작위화합니다.

UUID가 유효한지 어떻게 알 수 있나요?

형식(8-4-4-4-12 16진수)을 확인하고, 버전 자리(13번째 문자)가 1-8인지 검증하며, 변형 비트(RFC 4122 UUID의 경우 17번째 문자가 8, 9, A 또는 B인지)를 확인하세요.

Resources