UUID·ULID·Nano ID 생성기
UUID v4, 시간순으로 정렬되는 UUID v7, ULID, Nano ID를 한꺼번에 생성하고, ID에 담긴 버전과 타임스탬프를 확인합니다.
도구를 여기에 고정하세요. 이 브라우저에 저장됩니다.
도구를 고정하면 그 스티커가 여기에 붙습니다.
UUID v4, 시간순으로 정렬되는 UUID v7, ULID, Nano ID를 한꺼번에 생성하고, ID에 담긴 버전과 타임스탬프를 확인합니다.
UUID 버전 4는 122비트의 무작위 값입니다. 언제 어디서 만들어졌는지 아무것도 알려 주지 않으며, ID가 고유하기만 하면 될 때 흔히 선택합니다. 2024년 RFC 9562로 표준화된 UUID 버전 7은 밀리초 단위의 48비트 Unix 타임스탬프를 74비트 무작위 값 앞에 둡니다. 새 ID가 이전 ID 뒤에 정렬되므로 함께 삽입된 행이 데이터베이스 인덱스에서도 가까이 모이지만, 그 대가로 ID를 보는 누구에게나 생성 시각이 드러납니다.
ULID는 같은 아이디어를 다른 표기로 구현한 것으로, 48비트 시간과 80비트 무작위 값을 하이픈 없이 대소문자를 구분하지 않는 Crockford Base32 26자로 씁니다. Nano ID는 길이와 문자 집합을 직접 정하는 무작위 문자열입니다. 기본값인 URL-safe 기호 64개 중 21자는 126비트로, 버전 4 UUID보다 조금 많은 무작위성을 더 짧은 문자열에 담습니다.
무작위 ID는 이론적으로 충돌할 수 있습니다. 버전 4의 경우 중복이 한 번이라도 생길 확률이 절반에 이르려면 UUID를 약 270경 개(2.7 × 10^18) 생성해야 하므로, 애플리케이션은 이를 고유하다고 간주합니다. Nano ID를 짧게 하거나 문자 집합을 작게 하면 이 여유가 줄어듭니다. 옵션 아래 줄에 선택한 설정의 무작위 비트 수가 표시됩니다.
ID는 식별자이지 비밀 값이 아닙니다. 버전 1, 6, 7과 ULID는 생성 시각을 드러내며, RFC 9562는 UUID를 권한의 증거로 삼지 말라고 경고합니다. 비밀번호 재설정 링크, 세션, API 키에는 128비트 이상의 무작위 토큰을 사용하고 서버에는 그 해시만 보관하세요.
일반적인 형식 xxxxxxxx-xxxx-Vxxx-Nxxx-xxxxxxxxxxxx에서 V 자리는 버전이고, N의 앞쪽 비트는 변형입니다. 거의 모든 UUID가 따르는 RFC 9562 레이아웃이면 8, 9, a, b 중 하나입니다. 버전 1과 6은 1582년 10월 15일부터의 100나노초 단위 카운트 60비트와 노드 ID를 담는데, 노드 ID는 원래 네트워크 카드의 MAC 주소였습니다. 버전 7은 Unix 밀리초를 담습니다. 버전 3과 5는 이름의 해시이고 버전 4는 무작위이므로 디코딩할 정보가 없습니다.
ULID는 앞의 10자가 타임스탬프입니다. 분석기는 하이픈이 없는 UUID, 중괄호로 감싼 UUID, urn:uuid: 접두사가 붙은 UUID도 받습니다.
모든 무작위 비트는 브라우저의 암호학적 난수 생성기인 crypto.getRandomValues에서 가져옵니다. 서버에 아무것도 요청하지 않으며 아무것도 저장하지 않습니다.
같은 밀리초에 만든 버전 7 UUID는 타임스탬프를 그대로 두고 74비트 무작위 부분에 무작위 증분을 더합니다. RFC 9562에 설명된 단조 증가(monotonic) 방식으로, 한 번에 생성한 목록은 항상 생성 순서대로 정렬됩니다. 같은 밀리초에 만든 ULID는 ULID 사양대로 무작위 부분에 1을 더합니다. 이 순서는 이 페이지에서 만든 ID에만 해당합니다. 서로 다른 머신에서 같은 밀리초에 만든 ID는 정해진 순서 없이 정렬됩니다. Nano ID의 문자는 문자 집합을 벗어나는 무작위 바이트를 버리는 방식으로 고르므로, 모든 기호가 같은 확률로 나옵니다.
새 행이 인덱스에서 서로 가까이 놓이길 원하고 ID에 생성 시각이 드러나도 괜찮다면 버전 7이 기본 키에 더 적합합니다. ID가 아무것도 드러내지 않아야 한다면 버전 4를 선택하세요. 둘 다 128비트이며 같은 uuid 열에 들어갑니다.
가능하긴 하지만 대비할 필요가 없을 만큼 가능성이 낮습니다. 버전 4 UUID는 무작위 비트가 122개라서, 중복이 한 번 생길 확률이 반반이 되려면 약 270경 개(2.7 × 10^18)가 필요합니다. 실제 위험은 약한 난수원이며, 그래서 이 도구는 브라우저의 암호학적 생성기를 사용합니다.
아니요. 다만 둘은 비슷합니다. 둘 다 128비트이고 밀리초 단위의 48비트 타임스탬프로 시작하므로, ULID의 비트는 128비트 UUID 열에 들어갑니다. ULID에는 버전과 변형 필드가 없어 RFC 9562는 이를 UUID로 정의하지 않으며, 텍스트 형식도 UUID가 16진수를 쓰는 데 비해 Crockford Base32를 씁니다.
타임스탬프를 담고 있는 UUID 버전 1, 6, 7과 ULID라면 알 수 있습니다. 값을 분석기에 붙여 넣으면 날짜로 표시됩니다. 버전 4 UUID는 무작위이며 시간 정보가 없습니다.
별도의 창에서 열리며 오프라인에서도 계속 작동합니다.
설치하려면 공유 버튼을 누른 다음 “홈 화면에 추가”를 선택하세요.