Glyph WidgetsGlyph Widgets
도구소개연락처블로그개인정보약관광고 제거Ko-fi에서 후원하기

© 2026 Glyph Widgets LLC. 모든 권리 보유.

·

100% 클라이언트 측 처리

블로그로 돌아가기

Password Generator: 강력한 무작위 문자 비밀번호

암호학적으로 안전한 무작위 비밀번호(8-128자)를 생성합니다. 문자 집합 사용자 지정, 모호한 문자 제외, 실시간 엔트로피 표시 제공.

Glyph Widgets
2026년 5월 6일
읽기 15분
password generator무작위 비밀번호안전한 비밀번호비밀번호 엔트로피csprng password강력한 비밀번호 생성기

Password Generator란?

Password Generator는 crypto.getRandomValues와 거부 샘플링을 사용하여 밀도 높은 무작위 문자 비밀번호를 만드는 도구입니다. 각 문자가 선택된 알파벳에서 균일한 확률로 추출되며 모듈로 편향이 없습니다. 손으로 직접 입력할 일이 없는 자격 증명이 필요할 때 적합합니다 — API 키, 비밀번호 관리자 항목, 서비스 계정 등 vault에 사는 모든 것입니다. 저는 거의 모든 용도에서 4가지 문자 클래스를 모두 켠 24자를 기본으로 쓰고, 루트 계정이나 서명 키만 32 또는 40자로 올립니다. 외우기 쉬운 것이 필요하다면 본 사이트의 Passphrase Generator가 XKCD 단어 기반 방식을 제공합니다. 이 페이지는 정반대의 절충, 즉 문자당 엔트로피를 최대화하고 외우기 쉬움은 0이어도 되는 설계 이야기입니다.

주요 기능

  • 암호학적으로 안전한 소스 — 무작위성은 Web Crypto API 뒤에 있는 CSPRNG, crypto.getRandomValues에서 나옵니다. 단순 모듈로 대신 거부 샘플링을 쓰기 때문에 88자 알파벳도 앞 26자에 치우치지 않고 균일하게 추출됩니다.
  • 8에서 128까지의 길이 슬라이더 — 끌거나 숫자를 입력합니다. 옆의 숫자 입력 칸으로 정확한 값을 넣을 수 있습니다. 8이 하한인 이유는 그보다 짧으면 생성할 가치가 없기 때문입니다. 128은 잘리는 필드의 상한입니다.
  • 4개의 독립적인 문자 클래스 토글 — 대문자 A-Z, 소문자 a-z, 숫자 0-9, 기호 !@#$%^&*()_+-=[]{}|;:,.<>?. 대상 시스템이 거부하는 종류는 체크를 해제합니다. 마지막 클래스의 체크 해제는 막혀 있어 빈 알파벳에서 생성할 수 없습니다.
  • 모호한 문자 제외 — 알파벳에서 O, 0, I, l, 1을 제거합니다. 문자당 약 0.4비트의 비용으로, 인쇄된 복구 코드를 노려보지 않아도 되게 해 줍니다.
  • 실시간 엔트로피 패널 — 클래스를 토글하거나 길이 슬라이더를 끌 때마다 총 비트, charset 크기, 문자당 비트가 다시 계산됩니다. 총 비트는 Weak(빨강)에서 Ludicrous(무지개)까지 7단계로 색이 구분됩니다.
  • 최대 100개까지 일괄 생성 — 카운트 슬라이더를 설정하고 Generate를 누르면 최대 100개의 후보가 각각의 엔트로피 표시와 함께 한 번에 출력됩니다.
  • 행 단위 및 일괄 복사 — 각 비밀번호에 자체 복사 버튼이 있고, Copy All은 전체 목록을 줄바꿈으로 연결합니다. Clipboard API가 없으면 execCommand('copy')로 폴백합니다.
  • 비밀번호별 강도 등급 — 각 출력 행은 비트 수와 색상 표시 등급 라벨(Weak, Fair, Good, Strong, Very Strong, Fortress, Ludicrous)을 표시합니다.

Password Generator 사용 방법

1단계: 길이 설정

"Length" 슬라이더는 8에서 128까지 움직입니다. 라벨이 현재 값을 보여 줍니다. 옆 숫자 입력 칸도 같은 범위를 받으며 포커스를 잃을 때 범위 밖 값을 잘라냅니다. 기본값 16은 일반 계정에 충분합니다. 민감한 항목은 24나 32로 올립니다.

2단계: 문자 클래스 선택

"Character Sets" 아래 4개의 체크박스가 알파벳을 토글합니다:

  • 대문자(A-Z) — 26자
  • 소문자(a-z) — 26자
  • 숫자(0-9) — 10자
  • 기호 — !@#$%^&*()_+-=[]{}|;:,.<>? 중 26자

기본적으로 모두 켜져 있어 88자 알파벳(약 6.46비트/문자)이 됩니다. 대상 시스템이 금지하는 종류는 체크를 해제하세요. 서비스가 기호를 거부하면 문자당 약 0.4비트를 잃으므로, 길이를 몇 자 더 늘려 보충하세요.

3단계: 모호한 문자를 어떻게 할지 결정

클래스 토글 아래의 "Exclude ambiguous characters" 체크박스는 결합 알파벳에서 O, 0, I, l, 1을 제거합니다. 종이에서 읽는 비밀번호 — 인쇄된 복구 코드, 손으로 적은 지갑 시드, 지원팀에 소리 내 읽어 주는 문자열 — 에는 체크하세요. 가독성이 상관없고 한 비트라도 더 짜내야 하는 vault 전용 자격 증명에는 끄세요.

4단계: 엔트로피 패널 읽기

옵션 아래의 회색 띠에 세 개의 숫자가 있습니다:

  • Total entropy — 설정된 길이와 알파벳에서 비밀번호의 무작위성을 비트로 표시. 등급에 따라 색이 달라집니다.
  • Charset — 클래스 토글과 모호 문자 제외 후의 현재 알파벳 크기.
  • Bits per char — log2(charset_size). 4클래스 모두 켜고 제외 없을 때: log2(88) ≈ 6.46.

강도 등급은 총 비트 수에 매핑됩니다:

  • Weak(빨강): 40비트 미만
  • Fair(주황): 40-49비트
  • Good(노랑): 50-59비트
  • Strong(라임): 60-79비트
  • Very Strong(시안): 80-99비트
  • Fortress(보라): 100-149비트
  • Ludicrous(무지개): 150비트 이상

실용적으로: 60비트가 하한, 80비트가 일상 목표, 100비트 이상은 마스터 자격 증명이나 서명 키 등급입니다.

5단계: 생성, 검토, 복사

"Generate" 카운트 슬라이더(1-100)를 설정하고 Generate를 누르세요. 결과는 스크롤 가능한 목록에 번호가 매겨져 표시되며 각각 엔트로피 표시와 등급 라벨이 함께 나옵니다. 행 옆의 복사 아이콘은 그 한 개를, Copy All은 전체 목록을 줄바꿈으로 이어 복사합니다. Clear는 목록을 비웁니다. 결과 패널 상단의 Regenerate는 같은 설정으로 새 배치를 생성합니다.

실용 예시

24자 비밀번호 관리자 항목

설정: Length 24, 4클래스 모두 켬, 모호 문자 제외 끔, count 5.

샘플 출력:

qP7$mK#xR2!nVz8&jL*pYwH9

이는 24 * log2(88) ≈ 155 비트 — Ludicrous 등급입니다. "1Password에 저장하고 다시는 보지 않는" 평범한 자격 증명입니다. 한 번에 5개를 생성해 두면 자동 채우기가 실패해서 직접 입력할 일이 생겨도 앞 몇 글자가 입력하기 까다롭지 않은 후보를 고를 수 있습니다.

침해된 서비스 계정의 API 키 교체

설정: Length 40, 대문자+소문자+숫자, 기호 끔(일부 HTTP 클라이언트는 헤더의 기호를 여전히 잘못 처리합니다), 모호 문자 제외 끔.

샘플 출력:

aFq2KpRy7nMxBz4tHsWvLg3jCdN8VuTeXrYzPmQk

이는 40 * log2(62) ≈ 238 비트입니다. 기호를 끄면 문자당 엔트로피가 6.46에서 5.95로 떨어지지만 길이가 충분히 보충하고, 헤더 값의 &나 +가 어딘가에서 예기치 않게 URL 디코딩되는 엣지 케이스도 피할 수 있습니다. 침해된 키는 회전되고 새 값은 시크릿 매니저로 들어가며, 40자 길이 덕분에 회전 시스템이 실수로 로그를 남겨도 무차별 대입은 선택지에 없습니다.

다시는 방문하지 않을 사이트용 일회용 비밀번호

설정: Length 16, 소문자+숫자만, 모호 문자 제외 켬, count 1.

샘플 출력:

8kqr3zhmf4td9xbn

약 16 log2(31) ≈ 79 비트. 모호 문자를 뺀 소문자와 숫자 조합은 포럼의 회원가입 폼이 기호를 거부하고 이 왜 그쪽 검증기를 비명 지르게 하는지 2분간 디버깅하고 싶지 않을 때 고르는 구성입니다. 그래도 79비트 — Strong — 이며, 다시는 안 갈 사이트엔 과한 강도지만 비밀번호 관리자가 기억해 주므로 과함은 공짜입니다.

팁과 모범 사례

길이는 모든 등급에서 복잡도를 이깁니다. 30자 소문자 전용(~141비트)은 16자 전체 클래스(~103비트)보다 강합니다. 사이트가 "대문자, 숫자, 기호 필수"를 강제하면 모두 체크하고, 그렇지 않다면 길고 단순한 쪽이 다루기 쉽습니다.

60이 하한, 80이 일상 목표, 100 이상이 고가치 등급. 60비트 미만에서는 GPU 클러스터가 키스페이스를 며칠 만에 갈아 버릴 수 있습니다. 80을 넘기면 국가 규모 장비도 수년이 걸리고, 100을 넘으면 무차별 대입의 영역에서 완전히 벗어납니다.

비밀번호 관리자에 맡기고 모두 기억하게 하세요. 무작위 24자 비밀번호는 설계상 외울 수 없습니다. 정말로 입력해야 하는 자격 증명 — 마스터 비밀번호, 디스크 암호화 키, 복구 문구 — 은 대신 Passphrase Generator로 만드세요.

10개 만들고 1개 고르세요. count 5-10이면 입력하기 까다로운 시퀀스로 시작하지 않는 후보를 찾을 수 있습니다(!@#$은 수학적으로는 다른 어떤 4글자와도 동등하지만 인체공학적으로는 거칩니다).

생성된 비밀번호를 후처리하지 마세요. 생성 후 손을 대면 패널 표시값보다 엔트로피가 떨어집니다. 출력을 그대로 받아들이거나 다시 생성하세요.

자주 발생하는 문제와 해결

"Please select at least one character set" — 모든 클래스 체크박스가 해제되었습니다. 도구가 마지막 클래스 해제를 막지만, 어떤 클래스도 체크하기 전에 Generate를 누르면 이 오류가 표시됩니다.

사이트가 생성된 비밀번호를 너무 길다고 거부합니다. 일부 레거시 폼은 입력을 16, 20, 32자에서 조용히 잘라냅니다 — 긴 문자열을 받지만 앞 N 자만 저장합니다. 전체 문자열로 로그인할 수 없으면 길이 슬라이더를 줄이고 회전된 자격 증명으로 다시 시도하세요.

사이트가 특정 기호를 거부합니다. "Symbols"를 완전히 끄고 잃은 엔트로피를 메우기 위해 길이를 4-6자 늘리세요. 이 생성기에는 사용자 지정 기호 필드가 없으니, 기호 없이 생성한 다음 폼이 요구하면 허용된 기호를 무작위 위치에 직접 붙여 넣으세요.

16자에서도 엔트로피가 "Weak"로 표시됩니다. 클래스를 한 개만 체크했을 가능성이 큽니다. 16자 숫자 전용은 16 * log2(10) ≈ 53 비트 — Good입니다. 두 번째 클래스를 켜고 비트 수가 뛰는 것을 보세요.

생성된 비밀번호가 "충분히 무작위로 보이지 않습니다". 무작위 출력은 무작위로 보이지 않는 클러스터를 자주 만듭니다 — 모음 3연속, 대문자 2개 인접 등. 인간의 패턴 인식은 이를 "이상하다"고 표시하지만, 균일 무작위성이 정확히 그렇게 생깁니다.

개인정보와 보안

비밀번호 생성은 Web Crypto API가 노출하는 CSPRNG, crypto.getRandomValues를 사용해 브라우저에서 실행됩니다. 생성된 비밀번호는 어떤 서버로도 전송되지 않습니다. 도구 아래의 History 패널은 복사하고 잃어버린 것을 되찾을 수 있도록 최근 생성 항목을 브라우저의 IndexedDB에만 저장합니다. 끝나면 패널에서 비우거나, 로컬 흔적을 전혀 남기고 싶지 않다면 비공개/시크릿 창에서 사용하세요. 브라우저의 CSPRNG는 모든 현대 플랫폼에서 OS 수준 엔트로피로 시드되므로 "시드가 좋다고 믿어 달라"는 단서가 따로 없습니다.

자주 묻는 질문

패스프레이즈 대신 무작위 문자를 쓰는 이유는?

무작위 문자는 문자당 밀도가 높습니다 — 4클래스 모두 켜고 약 6.46비트/문자, 7,776단어 패스프레이즈 목록의 12.9비트/단어와 대비됩니다. 입력하지 않는 자격 증명은 길이가 싸기 때문에 밀도가 이깁니다. 입력하는 자격 증명은 외우기 쉬움이 중요하므로 패스프레이즈가 이깁니다. vault 전용 자격 증명에는 이 도구, 마스터 비밀번호와 복구 문구에는 Passphrase Generator를 사용하세요.

거부 샘플링이 무엇이고 왜 중요한가?

무작위 바이트(0-255)를 생성해 88자 알파벳에서 고르려고 byte % 88을 취하면, byte % 88의 처음 88개 출력이 마지막 80개보다 약간 더 자주 나옵니다. 256이 88의 배수가 아니기 때문입니다. 거부 샘플링은 편향된 범위에 떨어지는 값을 버리고 다시 뽑아 균일 분포를 만듭니다. 이 도구는 각 문자에 대해 32비트 무작위 정수에 이를 사용합니다.

비밀번호는 얼마나 길어야 하나?

일반 자격 증명은 엔트로피 패널에서 80비트 이상, 고가치는 100비트 이상이 나오는 길이입니다. 4클래스 모두 켜면 13자에 84비트, 16자에 103비트입니다. 패널이 계산해 주니 녹색 이상 등급을 목표하세요.

특정 정책(각 클래스에서 하나 이상 포함)을 만족하는 비밀번호를 생성할 수 있나?

이 도구는 "대문자 1개 이상, 숫자 1개 이상" 같은 규칙을 강제하지 않습니다. 4클래스 모두 체크 + 길이 16 이상이면 클래스를 빠뜨릴 실용 확률은 5% 미만입니다. 폼이 거부하면 다시 생성하세요.

생성한 비밀번호를 잃으면?

비밀번호 관리자에 복사했다면 거기서 복구하세요. 그렇지 않다면 도구 아래의 History 패널을 보세요 — 최근 생성 항목을 브라우저의 IndexedDB에 저장합니다. 기록을 비웠거나 시크릿 모드로 생성한 경우엔 복구할 수 없으니 대상 서비스에서 자격 증명을 회전하세요.

관련 도구

  • Passphrase Generator — 손으로 입력하는 자격 증명을 위해 XKCD 스타일의 외우기 쉬운 단어 패스프레이즈를 생성합니다.
  • UUID Generator — 자격 증명이 아니라 전역 고유 식별자가 필요할 때 v4 UUID를 생성합니다.
  • Hash Suite — 생성된 비밀번호를 결정적 시드로 쓰기 위해 SHA-256, SHA-512, BLAKE2 해시를 만듭니다.
  • Base64 Encoder/Decoder — 원시 바이트를 잘못 처리하는 환경에서 생성 비밀번호를 안전하게 전송하기 위해 인코딩합니다.
  • 곧 출시 예정: Argon2 Hash — 복구가 아니라 검증을 위해 비밀번호를 저장해야 할 때 현대적 KDF로 해시화합니다.

Password Generator 지금 사용해 보기: Password Generator

마지막 업데이트: 2026년 5월 6일

계속 읽기

더 많은 글Password Generator 사용해 보기