랜덤 HEX 토큰/키, 안전하게 한 번에 생성
개발을 하다 보면 API 키, 세션 토큰, 시크릿 키, 임시 비밀번호처럼 "예측할 수 없는 무작위 문자열"이 필요한 순간이 자주 찾아옵니다. 이때 키보드를 마구 두드려서 만든 값이나 단순한 난수 생성기는 안전하지 않을 수 있습니다. 이 랜덤 토큰 생성 도구는 브라우저에 내장된 Web Crypto API(crypto.getRandomValues)를 사용해 암호학적으로 안전한 무작위 바이트를 만든 뒤 16진수(HEX)로 변환합니다. 길이와 개수를 정하면 여러 개의 hex 키 생성 결과를 한 번에 받아볼 수 있어, 반복 작업 없이 빠르게 키를 마련할 수 있습니다.
HEX 토큰과 비트 수(엔트로피)의 관계
HEX(16진수)는 0~9와 a~f, 16개의 기호로 한 자리를 표현하며 이는 정확히 4비트에 해당합니다. 즉 두 글자(1바이트)는 8비트입니다. 그래서 32자리 HEX 토큰은 16바이트=128비트, 64자리 토큰은 32바이트=256비트의 엔트로피를 가집니다. 비트 수가 클수록 가능한 경우의 수가 기하급수적으로 늘어나 무차별 대입(brute force)으로 알아맞히는 것이 사실상 불가능해집니다. 이 도구는 입력한 길이에 맞춰 바이트 수와 비트 수를 함께 표시해, 내가 만든 키가 어느 정도 강도인지 한눈에 확인할 수 있습니다.
용도별 권장 길이
정해진 정답은 없지만 실무에서 널리 쓰이는 기준은 다음과 같습니다. 이 값들은 참고용 가이드이며, 사용하는 프레임워크나 보안 정책에 맞춰 조정하세요.
- 세션 토큰 · CSRF 토큰: 32자리(128비트) 이상 권장
- API 키 생성기로 만드는 일반 API 키: 32~48자리(128~192비트)
- 시크릿 키 · 서명용 비밀값: 64자리(256비트) 권장
- 임시 인증 코드 등 짧은 용도: 8~16자리(상황에 맞게)
이 도구의 특징
- 서버로 전송하지 않고 브라우저 안에서만 생성 — 외부 노출 위험이 없습니다.
- 대문자(A~F) 표시, "0x" 접두어 옵션을 켜고 끌 수 있습니다.
- 한 번에 최대 50개까지 생성해 복사 버튼으로 통째로 가져갈 수 있습니다.
- 입력한 길이/개수는 브라우저에 자동 저장되어 다음 방문 때 그대로 복원됩니다.
생성된 키는 비밀번호와 동일하게 다뤄야 합니다. 코드에 그대로 하드코딩하기보다 환경변수나 시크릿 매니저에 보관하고, 공용 PC에서 사용한 뒤에는 화면을 닫는 습관을 들이는 것이 안전합니다.
자주 묻는 질문 (FAQ)
Q. 랜덤 HEX 토큰은 어떻게 생성되나요?
A. 브라우저의 Web Crypto API로 안전한 난수 바이트를 만든 뒤, 각 바이트를 2자리 16진수로 바꿔 토큰을 만듭니다. 서버 전송 없이 브라우저 안에서만 처리됩니다.
Q. API 키나 시크릿 키를 만들 때 몇 자리가 적당한가요?
A. 일반 API 키·세션 토큰은 32자리(128비트) 이상, 높은 보안이 필요한 시크릿 키는 64자리(256비트)를 많이 사용합니다.
Q. HEX 토큰과 비트 수의 관계는 어떻게 되나요?
A. HEX 1글자는 4비트, 2글자(1바이트)는 8비트입니다. 32자리는 128비트, 64자리는 256비트의 엔트로피를 가집니다.
Q. 생성한 토큰은 안전하게 보관되나요?
A. 생성은 브라우저 안에서만 이루어지며 서버에 저장되지 않습니다. 다만 키는 비밀번호처럼 다루고 안전한 비밀 저장소에 보관하세요.