강력한 비밀번호 생성기
고급 옵션
단어는 영어 EFF 목록에서 가져오므로, 사용 언어와 관계없이 암구호는 영어로 표시됩니다.
단어 목록: Electronic Frontier Foundation의 EFF large wordlist, CC BY 3.0 US 라이선스. eff.org/dice계산 과정 보기
| 해독 소요 시간 |
|---|
이번 세션
한 번에 여러 개 생성
저장된 설정
비밀번호, 암구호, PIN, 키
출력 위 탭에서 네 가지 종류의 비밀 정보를 전환합니다. 넷 다 같은 로컬 난수 생성기를 사용하며, 문자 집합과 규칙만 다릅니다.
무작위 — 길이 4~128자, 대문자·소문자·숫자·기호를 자유롭게 조합합니다. 고급 옵션에는 실제 사이트들이 요구하는 조건이 모여 있습니다: 헷갈리는 문자(0/O, 1/l/I) 제외, 특정 문자 금지, 문자 유형별 최소 개수, 반복이나 abc·qwe 같은 연속 문자열 금지, 템플릿으로 정확한 형태 지정(A 대문자, a 소문자, # 숫자, ! 기호, C 자음, v 모음).
암구호 — 뒤섞인 하나의 문자열 대신 무작위 단어 여러 개를 쓰는 방식으로, XKCD 936의 correct-horse-battery-staple이 대표적입니다. 단어는 EFF large wordlist에서 가져오며 7,776개 항목, 단어당 12.9비트 — 다섯 단어면 약 65비트로, xK9#mP2$vL5@nQ8 같은 문자열과 달리 외워서 휴대폰에 입력할 수 있습니다. 구분 기호, 단어 대문자화, 숫자·기호 추가를 설정할 수 있습니다. 다른 스타일은 영어 단어 대신 발음 가능한 음절(tokrilmufsad)을 만들어 전화로 불러주기 쉽고 키보드 배열을 가리지 않습니다.
PIN — 휴대폰 잠금, SIM 카드, 경보기, 카드용으로 3~12자리. 1234, 0000, 같은 숫자 반복, 출생 연도로 읽히는 값은 걸러집니다. 유출된 PIN 데이터 분석에서 가장 흔한 네 자리 조합 20개가 전체의 약 4분의 1을 차지하니, 이 필터는 생각보다 중요합니다.
키 — 코드가 요구하는 형식의 무작위 값입니다: 16진수, Base64, 또는 영문자와 숫자. 바이트 단위로 크기를 정하므로 32바이트는 256비트 키(16진수 64자, Base64 44자)가 되어 API 키, 세션 시크릿, JWT_SECRET, SECRET_KEY에 적합합니다. 같은 탭에서 GitHub에서 보던 형식(k7fp-2mqx)의 2FA 백업 코드도 만들 수 있으며, 헷갈리는 문자가 없는 알파벳을 사용해 종이에 적어도 안전합니다.
이 도구가 브라우저에서만 작동하는 이유
대부분의 비밀번호 생성기는 잘 작동합니다 — 실제로 무슨 일이 일어나고 있는지 생각하기 전까지는요. 서버에서 비밀번호를 생성하면 해당 서버가 이론적으로 그것을 봅니다. 대부분의 사이트에서는 아마 괜찮을 것입니다. 하지만 “아마도”는 은행 계좌나 이메일을 설정할 때 원하는 확신이 아닙니다.
이 생성기는 하나의 원칙을 중심으로 구축되었습니다: 비밀번호는 절대 기기를 떠나지 않습니다. 모든 것이 브라우저에서 직접 JavaScript로 실행됩니다. 코드의 관련 부분:
const array = new Uint8Array(length);
crypto.getRandomValues(array);
crypto.getRandomValues()는 운영 체제의 난수 생성기에서 엔트로피를 가져옵니다 — 암호화 라이브러리에서 사용하는 것과 동일한 소스입니다. 이 탭을 닫으면 비밀번호가 사라집니다. 로그 없음, 데이터베이스 없음, 서버 없음.
비밀번호 “트릭”의 문제점
수년 동안 보안 조언은 이렇게 들렸습니다: 단어를 가져와서 첫 글자를 대문자로 만들고, 끝에 숫자를 추가하고, 한 글자를 기호로 바꾸세요. P@ssw0rd 같은 것이요.
공격자들은 이러한 트릭을 알고 있습니다. 사전 공격은 일반적인 단어만 시도하지 않습니다 — 일반적인 수정이 가해진 일반적인 단어도 시도합니다. P@ssw0rd는 강한 비밀번호가 아닙니다; 변장한 약한 비밀번호입니다.
“비밀번호는 속옷과 같습니다: 다른 사람이 보게 하지 말고, 자주 바꾸고, 낯선 사람과 공유하지 마세요.”
— Chris Pirillo
진정한 변화는 비밀번호 관리자와 함께 왔습니다. 비밀번호를 기억할 필요가 없을 때 — Bitwarden, 1Password 또는 KeePass에 안전하게 보관될 때 — 모든 계정에 xK9#mP2$vL5@nQ8 같은 것을 사용하지 않을 이유가 없습니다. 생성, 복사, 저장. 이것이 전체 워크플로우입니다.
비밀번호를 정기적으로 변경해야 하는 필요성은 이 도구가 만들어진 원래 이유 중 하나였습니다. 비밀번호 교체는 30초가 걸려야 하지, 두통을 일으켜서는 안 됩니다.
얼마나 길어야 충분한가?
길이가 복잡성보다 중요합니다. 소문자만으로 구성된 20자 비밀번호는 4가지 유형 모두를 포함한 10자 비밀번호보다 더 많은 엔트로피를 가집니다. 둘 다 중요하지만 길이가 이깁니다.
| 비밀번호 | 길이 | 해독 시간 |
|---|---|---|
password123 | 11자 | < 1초 |
KimMinJun1985 | 13자 | 3시간 |
Abc123!@# | 9자 | 2일 |
MyD0g!sF1uffy | 13자 | 5년 |
Tr$7mK@p9Lq2 | 12자 | 200년 이상 |
xK9#mP2$vL5@nQ8 | 15자 | 34,000년 |
NIST Special Publication 800-63B는 최소 8자를 권장하지만 길이가 강도의 주요 요인이라고 명시합니다 — 특수 문자 필수 요건은 비밀번호를 더 예측 가능하게 만들어 역효과를 낼 때가 많습니다.
문자 유형이 하는 일
- 대문자 (A–Z) — 위치당 26가지 가능성
- 소문자 (a–z) — 추가 26가지
- 숫자 (0–9) — 10가지
- 기호 (!@#$%…) — 문자 집합에 따라 32가지 이상
4가지 유형 모두를 포함한 16자의 경우 (위치당 94가지 가능한 값): 94¹⁶ ≈ 3.7 × 10³¹ 조합. 초당 십억 개의 비밀번호를 해독하는 현대 GPU 클러스터는 우주의 나이보다 더 오랜 시간이 필요합니다.
개발자를 위한 정보: 키, 시크릿, 대량 생성
키 탭이 존재하는 이유는 changeme, secret123 같은 값이 생각보다 자주 .env 파일에 남기 때문입니다. 라이브러리가 실제로 요구하는 형식으로 값을 생성하세요 — 원시 키에는 16진수, 토큰과 헤더에는 Base64, 셸이나 URL에서 +와 /가 문제가 되는 곳에는 영문자와 숫자. 크기는 문자 수가 아니라 바이트로 지정합니다: 16바이트는 128비트 키, 32바이트는 256비트 키입니다.
모든 값은 브라우저의 CSPRNG인 crypto.getRandomValues()에서 나옵니다 — Python의 secrets나 Go의 crypto/rand와 같은 계열이며, 예측 가능한 Math.random()은 절대 사용하지 않습니다.
패널 아래의 한 번에 여러 개 생성은 최대 1,000개의 값을 만들어 TXT, CSV, JSON, YAML, .env, SQL로 내려받습니다 — 테스트 계정 생성, 초기 자격 증명 배포, 스크립트 없이 열을 채울 때 유용합니다. 대량 생성은 무작위 비밀번호 설정(또는 템플릿)을 따르며, 암구호나 PIN 탭의 설정은 사용하지 않습니다.
작은 편의 기능 두 가지: 복사 60초 후 클립보드 지우기는 시크릿이 시스템 클립보드에 머무는 시간을 제한하고, 저장된 설정은 자주 쓰는 규칙(20자, 기호 없음, 헷갈리는 문자 제외 등)을 브라우저에 이름 붙여 저장해 클릭 한 번으로 불러오게 합니다. 페이지 URL도 생성된 값이 아니라 이 설정만 담으므로, 북마크하거나 동료에게 보내도 안전합니다.
비밀번호 관리자를 위한 논거
강력한 비밀번호를 생성하는 것은 재사용하거나 바탕화면의 passwords.txt에 저장하면 의미가 없습니다. Verizon 데이터 침해 조사 보고서는 침해의 81%가 도난되거나 약한 비밀번호를 포함한다는 것을 일관되게 발견합니다. 사람들이 비밀번호를 재사용하는 가장 흔한 이유: 추적해야 할 계정이 너무 많음.
비밀번호 관리자는 이를 깔끔하게 해결합니다:
- Bitwarden — 오픈 소스, 무료 계층이 대부분의 필요를 충족, 모든 플랫폼에서 작동
- 1Password — 세련된 UI, 우수한 가족/팀 공유
- KeePass — 완전 로컬, 클라우드 없음, 완전한 제어
비밀번호가 유출될 때
- 사용한 모든 계정에서 즉시 변경하세요
- 영향받은 계정에서 2FA를 활성화하세요
- **Have I Been Pwned**를 확인하세요 — 이메일을 입력해 과거 침해를 확인
- 활성 세션을 검토하고 낯선 것들을 취소하세요
계정 유형별 권장 사항
금융 계정
- 16자 이상, 모든 문자 유형
- 고유한 비밀번호, 절대 재사용 금지
- 인증 앱을 통한 2FA (SMS 아님)
이메일
- 14자 이상 — 이메일은 다른 모든 비밀번호를 재설정하므로 보안의 핵심 자산입니다
- 필수 2FA
- 로그인된 기기를 정기적으로 확인
소셜 미디어
- 12자 이상
- 인증 앱을 통한 2FA — SMS 기반 2FA는 SIM 스와핑 공격에 취약
직장 계정
- 회사 정책 따르기 (일반적으로 14자 이상)
- 직장 시스템에 개인 비밀번호를 절대 사용하지 말 것; 퇴사 시 즉시 변경
피해야 할 일반적인 실수
일반 텍스트로 비밀번호 저장 (passwords.txt, 메모 앱, 이메일 임시보관함) — 대신 암호화된 비밀번호 관리자를 사용하세요.
채팅이나 이메일로 비밀번호 공유 — 공유해야 한다면 Bitwarden Send 또는 유사한 보안 공유를 사용하세요.
브라우저만을 비밀번호 관리자로 신뢰 — 브라우저는 발전하고 있지만, 마스터 비밀번호가 있는 전용 관리자는 더 나은 암호화와 크로스 플랫폼 지원을 제공합니다.
한국의 가이드라인
한국의 KISA(한국인터넷진흥원, kisa.or.kr)는 비밀번호 권장 사항을 포함한 사이버 보안 가이드라인을 발표합니다. 한국 금융 규제기관은 은행들이 다중 요소 인증을 구현하도록 요구합니다. KISA 연구에 따르면 한국 사용자들은 주민등록번호 패턴이나 전화번호를 비밀번호로 자주 사용합니다 — 이는 유출된 개인 데이터와 교차 참조될 수 있어 특히 위험합니다.
비밀번호 보안 통계
- 기업 침해의 **81%**가 도난되거나 약한 비밀번호를 포함 (Verizon DBIR)
- **59%**의 사람들이 여러 계정에서 비밀번호를 재사용
- 가장 일반적인 비밀번호의 **23%**가 1초 미만에 해독 가능
- 평균 사용자는 비밀번호가 필요한 100개 이상의 온라인 계정을 보유
자주 묻는 질문
이 생성기는 정말 비공개인가요?
예. 비밀번호를 생성하는 동안 브라우저 개발자 콘솔 (F12)을 열고 네트워크 탭을 확인하세요 — 전송된 요청이 없음을 볼 수 있습니다. 모든 것이 로컬에서 실행됩니다.비밀번호를 얼마나 자주 변경해야 하나요?
이유가 있을 때: 알려진 침해, 손상 의심, 또는 액세스 공유 후. NIST는 더 이상 정기적인 강제 교체를 권장하지 않습니다 — 강제로 잦은 변경은 일반적으로 더 약하고 예측 가능한 비밀번호로 이어집니다.여러 계정에 같은 비밀번호를 사용할 수 있나요?
아니오. 하나의 침해가 그 비밀번호를 공유하는 모든 계정을 노출시킵니다. 비밀번호 관리자를 통해 수백 개의 계정에 대한 고유한 비밀번호를 손쉽게 유지할 수 있습니다.비밀번호와 암구호, 무엇을 써야 하나요?
비밀번호 관리자가 대신 입력해 주는 곳에는 무작위 비밀번호를, 직접 입력해야 하는 몇몇 시크릿 — 관리자의 마스터 비밀번호, 디스크 암호화, 노트북 로그인 — 에는 암구호를 쓰세요. EFF 목록 단어 다섯 개는 약 65비트로, 네 가지 문자 유형을 모두 쓴 10자 무작위 비밀번호와 비슷하면서도 휴대폰이나 TV 리모컨으로 훨씬 정확하게 입력할 수 있습니다.무작위 PIN을 만들 수 있나요?
네, PIN 탭에서 3~12자리를 생성하며 1234, 0000, 같은 숫자 반복, 출생 연도처럼 뻔한 값은 거부합니다. 네 자리 대신 여섯 자리를 쓰면 입력 수고는 거의 늘지 않지만 공격자가 시도해야 할 경우의 수는 100배로 늘어납니다.API 키나 애플리케이션 시크릿에 사용할 수 있나요?
그것이 키 탭의 용도입니다: 16진수, Base64, 영문자와 숫자 중에서 선택하고 바이트 단위로 크기를 정합니다. 32바이트는 256비트 키로, 대부분의 라이브러리가JWT_SECRET, SECRET_KEY, 웹훅 서명에 요구하는 강도입니다. 같은 탭에서 2FA 백업 코드도 만들 수 있습니다.