Toolify

비밀번호 생성기 (암호학적 안전 + 강도 표시)

Math.random이 아닌 crypto.getRandomValues 사용 — 은행 수준의 난수 소스. 길이와 문자 종류를 조정 가능하며 엔트로피 표시로 강도를 직관적으로 확인.

강함엔트로피 103 비트

작동 방식

본 도구가 진짜 안전한 이유

웹의 많은 「비밀번호 생성기」는 Math.random()을 사용하지만 이는 암호학적으로 안전하지 않습니다. 출력 몇 개를 관찰하면 다음 값을 예측할 수 있습니다. 본 도구는 Web Crypto API의 crypto.getRandomValues를 사용하며 이는 HTTPS 세션과 OS 키체인이 사용하는 것과 같은 암호 난수 소스입니다.

생성은 사용자의 브라우저 안에서만 이루어집니다. 비밀번호는 네트워크로 전송되거나 서버에 저장되지 않습니다. 도메인이 침해되어도 훔칠 데이터가 없습니다(저장하지 않으니까).

강도 표시 방식

강도 라벨은 엔트로피로 계산: 비트 = log₂(문자 집합 크기) × 길이. 예: 소문자만 10자 = log₂(26) × 10 ≈ 47비트로, 본격적인 공격자에게 단시간에 뚫립니다. 4종 문자를 모두 사용한 16자 비밀번호는 약 105비트로, 현실적인 위협 대부분에 충분합니다. 구간: <50 약함, 50-80 보통, 80-128 강함, ≥128 매우 강함.

현실 대응: 약함 = 보통 공격자가 며칠 안에 돌파; 보통 = 봇넷으로 수년; 강함 = 현재의 현실적인 공격자로는 깰 수 없음; 매우 강함 = 양자 컴퓨팅을 포함한 미래 위협에도 여유.

「복잡함」보다 「길이」

수학적으로, 길이를 한 글자 늘리면 탐색 공간이 약 두 배가 됩니다(문자 집합 따라). 한편 문자 종류를 하나 늘려도 약간만 확장됩니다. 20자의 소문자 비밀번호가 12자의 영숫자+기호 혼합보다 엔트로피가 높고 입력하기도 쉽습니다. 외우고 싶다면 7000단어 목록에서 무작위 4단어 선택 ≈ 51비트로 강한 8자 비밀번호와 동등.

「헷갈리는 문자 제외」 옵션은 폰트에 따라 혼동되는 문자(0과 O, I와 1과 l)를 제외합니다. 강도는 약간 떨어지지만 종이에 적었을 때 읽기 쉬워집니다. 인쇄에서 수동 입력할 가능성이 있다면 켜고, 비밀번호 관리자만 사용하면 끄세요.

자주 묻는 질문

정말 안전한 난수인가요?

네. Math.random()이 아닌 Web Crypto API의 보안 난수를 사용합니다. 브라우저 벤더 제공 구현은 감사를 거쳤고 HTTPS 기반과 동일합니다.

비밀번호가 서버로 전송되나요?

절대 전송되지 않습니다. 생성, 엔트로피 계산, 클립보드 복사 모두 로컬에서 이루어집니다. 수신 엔드포인트도 없습니다.

16자면 충분한가요?

온라인 계정에는 거의 항상 충분합니다. 비밀번호 관리자 마스터나 암호화 키에는 24자 이상, 또는 6단어 패스프레이즈 권장.

길이를 늘려도 강도 평가가 안 오르는 이유는?

평가는 선택한 문자 종류로 계산합니다. 소문자만이면 문자 집합이 26뿐이라 길이 증가의 효과가 제한적입니다.

「비트」란?

현재 설정으로 생성 가능한 비밀번호 총수의 log₂. 80비트 ≈ 1.2 × 10²⁴ 가지로 현재 무차별 대입의 도달 범위를 훨씬 넘습니다.

기호를 포함해야 하나요?

가능하면 포함하세요. 기호 1자는 숫자+영문자에 가까운 엔트로피 기여를 합니다. 일부 구식 사이트에서 사용 불가 시 길이를 늘려 보충.

「헷갈리는 문자 제외」를 써야 하나?

수동 입력 가능성이 있을 때만. 비밀번호 관리자 보관만이라면 끄는 것이 좋습니다(가독성 이득이 무의미).

같은 비밀번호가 두 번 생성될 수 있나?

이론상 가능하지만 50비트 엔트로피에서도 두 번에 한 번 충돌 확률은 1/2⁵⁰ ≈ 10¹⁵분의 1로 사실상 발생하지 않습니다.

관련 도구

최종 업데이트: