비밀번호 생성기
브라우저 기반 암호학적 난수로 안전한 비밀번호를 생성하고 강도를 분석합니다.
문자 종류
비밀번호 생성 버튼을 눌러 안전한 비밀번호를 만드세요
비밀번호 생성기 안내
- 암호학적 난수(crypto.getRandomValues)로 예측 불가능한 비밀번호 생성
- 비밀번호 강도(엔트로피)와 크랙 예상 시간을 함께 확인
- 한 번에 최대 10개까지 생성, 클릭 한 번으로 복사
- 모든 처리는 브라우저에서만 이루어지며 서버 전송 없음
암호학적 난수(crypto.getRandomValues)를 사용하여 비밀번호를 생성합니다. 모든 처리는 브라우저에서 이루어지며, 생성된 비밀번호는 서버로 전송되지 않습니다.
비밀번호 생성기
비밀번호 생성기란?
비밀번호 생성기는 암호학적으로 안전한 난수를 사용하여 예측 불가능한 무작위 비밀번호를 만들어주는 도구입니다. 사람이 직접 만든 비밀번호는 생년월일, 전화번호, 키보드 패턴(qwerty, 1234 등) 등 추측 가능한 요소를 포함하기 쉽습니다. 이 생성기는 브라우저의 crypto.getRandomValues() API(W3C Web Crypto API)를 사용하여 통계적으로 균등하고 편향 없는 난수로 비밀번호를 생성합니다. 모든 처리는 브라우저에서만 이루어지며, 생성된 비밀번호는 서버로 전송되지 않습니다.
사용 방법
- 비밀번호 길이 설정: 8~128자 범위에서 선택합니다. NIST SP 800-63B는 최소 8자 이상을 요구하며, 16자 이상을 권장합니다.
- 문자 종류 선택: 대문자(A-Z), 소문자(a-z), 숫자(0-9), 특수문자를 조합합니다. 문자 종류가 많을수록 엔트로피가 높아집니다.
- 생성 개수 설정: 1~10개까지 한 번에 여러 비밀번호를 생성할 수 있습니다.
- 결과 확인: 각 비밀번호의 강도 등급, 엔트로피(비트), 크랙 예상 시간이 함께 표시됩니다.
- 복사: 복사 버튼을 눌러 클립보드에 즉시 복사할 수 있습니다.
비밀번호 강도와 엔트로피
비밀번호 강도는 엔트로피(entropy, 비트 단위)로 측정합니다. 엔트로피는 log2(문자 풀 크기) x 길이로 계산되며, 값이 높을수록 무차별 대입에 강합니다.
| 구성 | 길이 | 풀 크기 | 엔트로피 | 등급 | 크랙 예상 시간 |
|---|---|---|---|---|---|
| 소문자만 | 8자 | 26 | ~37 bits | 약함 | 수 초 |
| 소문자+숫자 | 10자 | 36 | ~52 bits | 약함 | 수 시간 |
| 대소문자+숫자 | 12자 | 62 | ~71 bits | 보통 | 수백 년 |
| 전체 문자 | 16자 | 88 | ~103 bits | 매우 강함 | 수조 년 |
| 전체 문자 | 20자 | 88 | ~129 bits | 매우 강함 | 우주 나이 이상 |
크랙 시간은 초당 100억(1010) 회 추측이 가능한 현대 GPU 클러스터를 기준으로 합니다. 실제 온라인 서비스에서는 계정 잠금, CAPTCHA 등 추가 보안 조치가 있어 무차별 대입이 어렵지만, 유출된 해시를 오프라인에서 공격하는 경우 이 수준의 속도가 가능합니다. 비밀번호 강도를 높이는 가장 효과적인 방법은 길이를 늘리는 것이며, 문자 종류를 혼합하는 것도 도움이 됩니다.
왜 랜덤 비밀번호가 필요한가?
해커들은 비밀번호를 탈취하기 위해 다양한 공격 기법을 사용합니다. 무작위로 생성된 긴 비밀번호는 이러한 공격에 대한 가장 효과적인 방어 수단입니다.
| 공격 유형 | 설명 | 방어 방법 |
|---|---|---|
| 사전 공격 | 흔한 단어·패턴 조합을 순서대로 시도 | 랜덤 문자 조합 사용 |
| 무차별 대입 | 가능한 모든 문자 조합을 시도 | 길이 12자 이상 + 문자 종류 혼합 |
| 크리덴셜 스터핑 | 유출된 비밀번호를 다른 사이트에 시도 | 사이트마다 고유 비밀번호 사용 |
| 소셜 엔지니어링 | 개인 정보(생년월일, 반려동물 이름 등) 기반 추측 | 개인 정보와 무관한 랜덤 생성 |
Have I Been Pwned 기준 유출된 비밀번호는 100억 건 이상(2025)으로, 한 곳에서 유출된 비밀번호는 즉시 다른 사이트 공격에 활용됩니다.
흔한 비밀번호 실수
매년 발표되는 "가장 흔한 비밀번호" 목록에는 123456, password, qwerty 등이 항상 상위에 올라옵니다. 이런 비밀번호는 사전 공격으로 수 초 안에 뚫립니다. 피해야 할 패턴은 다음과 같습니다.
- 이름+생년월일 조합: 소셜미디어에서 쉽게 추출 가능하여 소셜 엔지니어링 공격에 취약합니다.
- 키보드 패턴: qwerty, 1q2w3e, zxcvbn 등은 사전 공격 목록에 포함되어 있습니다.
- 단순 치환: p@ssw0rd, h3llo 같은 치환은 현대 사전 공격에 이미 포함되어 있어 보안 효과가 거의 없습니다.
- 하나의 비밀번호 재사용: 한 사이트가 해킹되면 같은 비밀번호를 사용하는 모든 계정이 동시에 위험해집니다.
계정 중요도별 비밀번호 권장 설정
모든 계정에 동일한 수준의 비밀번호가 필요한 것은 아닙니다. 계정의 중요도에 따라 적절한 보안 수준을 설정하세요.
| 계정 유형 | 권장 길이 | 문자 종류 | 변경 시점 | 비고 |
|---|---|---|---|---|
| 금융/은행 | 20자+ | 전체 문자 | 유출 시 즉시 | 2FA 필수 |
| 이메일/클라우드 | 16자+ | 전체 문자 | 유출 시 즉시 | 복구 계정 보호 중요 |
| SNS/커뮤니티 | 12자+ | 대소문자+숫자 | 연 1회 | 고유 비밀번호 |
| 일회성 가입 | 12자+ | 대소문자+숫자 | 불필요 | 비밀번호 관리자 저장 |
NIST SP 800-63B 최신 권고에 따르면, 주기적 강제 변경보다 유출 의심 시 즉시 변경이 더 효과적입니다. 비밀번호 관리자(1Password, Bitwarden 등)를 사용하면 사이트마다 고유한 긴 비밀번호를 쉽게 관리할 수 있으며, 2단계 인증(2FA)을 병행하면 보안이 크게 강화됩니다.
관련 도구
참고사항
본 도구는 W3C Web Crypto API(crypto.getRandomValues())를 사용하며, 생성된 비밀번호는 서버로 전송되지 않습니다. 비밀번호 가이드라인은 NIST SP 800-63B(Digital Identity Guidelines)를 참고했습니다.