랜덤 토큰 생성기이란?

Web Crypto API를 사용하여 16진수, Base64, 영숫자, URL 안전, 숫자만, 기호 포함 또는 완전한 사용자 지정 문자 집합으로 무작위 토큰을 생성합니다. API 키, 세션 토큰, CSRF 토큰, 숫자 PIN과 일회용 코드, 비밀번호 재설정 링크 등 암호학적 무작위성이 필요한 곳에 사용하세요.

모든 바이트는 crypto.getRandomValues에서 나옵니다. 브라우저가 TLS 키를 만들 때 쓰는 그 소스입니다. 16, 32, 48, 64, 128바이트 중 길이를 고르면, 엔트로피 패널에 선택한 포맷 기준 몇 비트의 무작위성이 들어가는지 즉시 표시됩니다. 한 번에 최대 20개를 만들고 .txt로 일괄 다운로드해 배포할 수 있습니다.

사용 방법

  1. 토큰 형식(16진수, Base64, 영숫자, URL 안전, 숫자만, 기호 포함 또는 직접 지정한 문자)과 원하는 길이를 선택하세요.
  2. 생성 버튼을 클릭하면 암호학적으로 안전한 무작위 토큰이 즉시 생성됩니다.
  3. 토큰을 복사하거나 대량 사용을 위해 여러 토큰을 한 번에 생성하세요.

사용 시기

  • API 키, Webhook 서명용 비밀, 서비스 간 인증 토큰을 발급할 때.
  • 비밀번호 재설정 링크, 이메일 인증 토큰, 일회용 로그인 URL을 생성할 때.
  • 테스트 픽스처에 충돌하지 않는 현실적인 무작위 ID를 채워 넣을 때.

결과

API 키로 사용할 256비트 16진수 토큰(64자)을 생성하세요: 'a3f8b2c1d4e5f6…' — crypto.getRandomValues의 완전한 엔트로피를 갖습니다.

자주 묻는 질문

API 키에 정말 필요한 엔트로피는 얼마나 되나요?
장기 발급되는 자격증명은 128비트가 사실상 하한선이고, 무차별 대입은 사실상 불가능합니다. 서명 키나 암호 연산에는 32바이트(256비트)를 권장합니다. 단기 세션 토큰은 16바이트면 충분합니다.
base64와 URL-Safe 포맷은 무엇이 다른가요?
base64는 +, /, 패딩 =를 쓰는데 URL이나 파일 이름에 넣으면 깨집니다. URL-Safe는 이를 -, _로 바꾸고 패딩을 제거합니다. 쿼리 문자열, 경로, HTTP 헤더에 들어갈 토큰은 URL-Safe를 고르세요.
같은 바이트 수일 때 영숫자 포맷의 엔트로피가 hex보다 낮은 이유는?
hex와 base64는 바이트당 8비트를 그대로 문자에 담습니다. 영숫자는 모듈러로 62자에 매핑하면서 바이트당 약 2비트가 사라지고 약간의 편향이 생깁니다. ID 용도로는 무난하지만 암호 비밀로는 약합니다.
Web Crypto가 없을 때 Math.random()을 대안으로 써도 되나요?
안 됩니다. Math.random()은 예측 가능한 PRNG여서 몇 개의 출력만 봐도 다음 값을 복원할 수 있습니다. Web Crypto는 2014년 이후 모든 브라우저와 최신 Node.js에서 제공됩니다. 없다면 차라리 비밀을 만들지 마세요.
같은 토큰이 애플리케이션 안에서 중복될 수 있나요?
16바이트 토큰이라면 약 2^64개를 발급해야 충돌이 생길 가능성이 보입니다(생일 문제 한계). 수십억 단위 이하의 실제 작업에서는 통계적으로 충돌이 없다고 봐도 무방하며 별도의 유일성 검사는 필요 없습니다.

관련 도구