UUID UUID Generator

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

짧은 UUID 생성기

UUID와 같은 128비트를 22자 문자열로 줄여 생성합니다. URL과 파일 이름에 그대로 쓸 수 있습니다.

  • 22자
  • URL 안전
  • 8 · 12 · 16바이트

짧은 UUID 생성기

Short
범위는 1~1000입니다.

결과 0

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

    짧은 UUID 개요

    UUID는 36자인데, 그중 하이픈 4자와 16진수라는 표기 때문에 길이가 늘어난 것입니다. 같은 128비트를 Base64url로 인코딩하면 패딩 없이 22자로 줄어듭니다.

    Base64url은 -_만 쓰기 때문에 URL 경로, 쿼리 문자열, 파일 이름에 넣어도 이스케이프가 필요 없습니다. 더 짧게 만들고 싶으면 12바이트(16자)나 8바이트(11자) 변형을 고르세요.

    사용 방법

    1. 랜덤 바이트 수에서 크기를 고릅니다. 16바이트는 UUID와 같은 128비트입니다.
    2. 필요하면 개수를 설정합니다. 최대 1000개까지 가능합니다.
    3. 생성을 누릅니다.
    4. 전체 복사나 다운로드로 가져갑니다.

    사용 사례

    • URL 경로나 쿼리에 들어가는 리소스 식별자.
    • 파일 이름이나 로그 키처럼 짧아야 하는 자리.
    • 128비트는 과하고 64비트면 충분한 내부 식별자.

    구조

    16바이트를 Base64url로 인코딩하면 22자가 됩니다. 12바이트는 16자, 8바이트는 11자입니다. 패딩 문자는 붙지 않습니다.

    짧은 UUID의 역할

    어떤 옵션을 언제 써야 할까
    옵션사용 시점
    짧은 UUID22자. URL과 파일 이름에 그대로 씁니다
    UUID v436자지만 어떤 도구에서도 그대로 읽힙니다
    형식 변환이미 있는 UUID를 짧게 줄일 때

    UUID 버전 한눈에 보기

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

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

    코드 예제

    javascript

    const bytes = crypto.getRandomValues(new Uint8Array(16));
    const short = btoa(String.fromCharCode(...bytes))
      .replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');

    python

    import base64, os
    short = base64.urlsafe_b64encode(os.urandom(16)).rstrip(b'=').decode()

    java

    byte[] bytes = new byte[16];
    new java.security.SecureRandom().nextBytes(bytes);
    String short = Base64.getUrlEncoder().withoutPadding()
        .encodeToString(bytes);

    csharp

    var bytes = RandomNumberGenerator.GetBytes(16);
    var shortId = Convert.ToBase64String(bytes)
        .Replace('+', '-').Replace('/', '_').TrimEnd('=');

    sql

    -- PostgreSQL 13+
    SELECT translate(encode(gen_random_bytes(16), 'base64'), '+/=', '-_');

    자주 묻는 질문

    짧은 UUID도 고유한가요?

    16바이트를 쓰면 UUID와 같은 128비트이므로 고유성도 같습니다. 8바이트로 줄이면 64비트가 되어, 값이 많아질수록 겹칠 확률이 눈에 띄게 올라갑니다.

    UUID 컬럼에 넣을 수 있나요?

    값 자체는 바이트이므로 저장은 됩니다. 다만 UUID 타입으로 선언한 컬럼에 넣으려면 다시 128비트로 디코딩해야 버전과 변형 자리를 채울 수 있습니다.

    URL에 넣어도 안전한가요?

    안전합니다. Base64url은 -_만 쓰기 때문에 URL 경로와 쿼리 문자열에서 이스케이프가 필요 없습니다.