UUID 버전 4 생성기
UUIDv4 • 암호학적 무작위 난수
00000000-0000-0000-0000-000000000000
감싸기:
UUID 대량 배치 생성
0 msReady
최대 5,000개
형식 및 구조 설정
준비 완료
No batch active1-click copy available on each row
업계 표준•RFC 9562 섹션 5.4 / RFC 4122
UUID 버전 4 기술 사양 (RFC 4122 & RFC 9562)
UUIDv4는 전 세계 소프트웨어에서 가장 널리 사용되는 난수 기반 식별자입니다. 전체 128비트 중 버전(0100) 및 변형(10xx) 비트를 제외한 122비트가 암호학적으로 안전한 난수 엔트로피로 채워집니다.
비트필드 레이아웃 및 바이너리 구조
RFC 표준에 따른 128비트 바이트 세부 구조입니다.
| 필드 이름 | 비트 범위 | 용도 및 설명 |
|---|---|---|
| random_hi | 48비트 (0-47) | 암호학적으로 안전한 의사 난수 엔트로피. |
| ver | 4비트 (48-51) | 고정 바이너리 값 0100 (버전 4 식별). |
| random_mid | 12비트 (52-63) | 암호학적으로 안전한 의사 난수 엔트로피. |
| var | 2비트 (64-65) | 고정 바이너리 값 10 (RFC 표준 변형). |
| random_lo | 62비트 (66-127) | 암호학적으로 안전한 의사 난수 엔트로피. |
✓
장점 및 특징
- •완벽한 개인정보 보호: 타임스탬프, MAC 주소, 호스트 정보를 일체 노출하지 않음.
- •모든 현대 프로그래밍 언어 표준 라이브러리 및 데이터베이스 엔진에서 기본 지원.
- •예측 불가능한 난수 구조로 IDOR 열거 공격에 대해 안전함.
!
고려사항 및 제한점
- •무작위 삽입으로 인해 대규모 관계형 데이터베이스 B-Tree 인덱스 성능이 저하됨.
- •별도의 created_at 컬럼 없이는 시간순 정렬이 불가능함.
권장 사용처
- →API 키, 인증 세션 토큰, 비밀번호 재설정 링크, OAuth 식별자.
- →외부에 노출되는 불투명 사용자 고유 ID.
- →Redis, Memcached 등 비인덱싱 분산 캐시 키.
지양해야 할 사용처
- ✕쓰기 작업이 빈번한 대규모 데이터베이스 B-Tree 클러스터형 기본 키(UUIDv7 권장).
- ✕자연스러운 사전순 정렬이 필요한 레코드.
코드 구현 예제
Native Web CryptoJavaScript / TypeScript
// Modern browsers and Node.js 14.17+
const id = crypto.randomUUID();
console.log(id); // e.g. "c9a646d3-9c61-4cc9-bc0c-930438cf38cf"Python Standard LibraryPython
import uuid
id = uuid.uuid4()
print(id) # e.g. "f47ac10b-58cc-4372-a567-0e02b2c3d479"Go (google/uuid)Go
package main
import (
"fmt"
"github.com/google/uuid"
)
func main() {
id := uuid.New()
fmt.Println(id.String())
}자주 묻는 질문
생성 가능한 UUIDv4의 총 경우의 수는 몇 개인가요?▼
122비트의 난수 엔트로피로 약 5.3 × 10³⁶개의 고유 조합이 존재합니다. 매초 10억 개씩 85년 동안 쉬지 않고 생성해도 중복 확률은 10억 분의 1 이하입니다.
이 생성기는 Math.random()을 사용하나요?▼
아닙니다. 운영체제 커널의 암호학적 보안 난수 생성기(CSPRNG)에서 직접 엔트로피를 가져오는 Web Crypto API(crypto.getRandomValues)만을 사용합니다.