길이와 문자 종류를 골라 무작위 비밀번호를 만들어요. 브라우저의 암호학적 난수 생성기를 쓰고, 만든 값은 이 페이지를 벗어나지 않아요. 엔트로피(bit)와 전수 대입 예상 시간도 함께 보여줘요.
강도는 엔트로피(길이 × log2(문자 풀 크기))로 계산해요. 문자 종류를 늘리는 것보다 길이를 늘리는 쪽이 훨씬 빠르게 강해져요 — 소문자만 20자가 4종류 12자보다 강합니다.
전수 대입 시간은 유출된 해시를 GPU 로 오프라인 공격(초당 100억 회)하는 기준이에요. 로그인 창에 직접 시도하는 공격은 자릿수가 다르게 느립니다.
선택한 문자 종류마다 최소 한 글자를 넣고 전체를 섞어요 — 앞자리에 종류 순서가 드러나면 실제 탐색 공간이 줄어들어요.
엔트로피는 길이 × log₂(문자 풀 크기) 로 계산해요. 단위는 비트예요.
소문자만(26종) 8자 = 8 × log₂(26) ≈ 38비트. 4종류 혼합(94종) 12자 = 12 × log₂(94) ≈ 79비트.
1비트가 늘면 경우의 수가 두 배예요. 40비트와 80비트는 두 배가 아니라 1조 배 차이예요.
60비트 미만 은 오프라인 공격에 위험, 80비트 면 실용적으로 안전, 100비트 이상이면 당분간 걱정 없어요.
이게 이 도구가 알려주는 가장 실용적인 사실이에요.
소문자만 20자 = 20 × log₂(26) ≈ 94비트.
4종류 혼합 12자 = 12 × log₂(94) ≈ 79비트.
기억하기 쉬운 소문자 20자가 외우기 어려운 특수문자 조합 12자보다 강해요.
«대문자·숫자·특수문자를 반드시 포함» 같은 규칙이 오히려 역효과인 이유예요. 사람들이 `Password1!` 같은 예측 가능한 패턴을 만들거든요.
무작위 단어 여러 개를 이어 붙이는 방식이에요. `correct-horse-battery-staple` 같은 형태요.
7,776단어 사전(디스웨어)에서 무작위로 고르면 단어당 약 12.9비트예요. 6단어면 약 77비트, 7단어면 90비트.
장점은 외우기 쉽다는 거예요. 사람은 무작위 문자열보다 단어를 훨씬 잘 기억해요.
⚠️ 반드시 무작위로 고르세요. 본인이 «생각나는 대로» 고른 단어는 예측 가능해요. 좋아하는 노래 가사나 흔한 문구는 사전 공격에 걸려요.
마스터 비밀번호(비밀번호 관리자의 열쇠)처럼 외워야 하는 것에 특히 적합해요.
이 도구가 보여주는 «대입 시간» 은 유출된 해시를 GPU 로 오프라인 공격하는 기준이에요(초당 100억 회 가정).
온라인 공격(로그인 창에 직접 시도)은 자릿수가 다르게 느려요 — 서버가 속도 제한과 계정 잠금을 걸거든요.
⚠️ 그런데 실제 공격은 전수 대입이 아니에요. 유출된 비밀번호 목록과 사전, 변형 규칙을 먼저 시도해요. `P@ssw0rd!` 는 엔트로피 계산상 강해 보여도 몇 초 만에 뚫려요 — 그 패턴이 목록에 있으니까요.
즉 무작위로 만든 것만 이 계산이 의미가 있어요.
강한 비밀번호의 진짜 문제는 재사용이에요. 한 사이트가 털리면 같은 비밀번호를 쓴 모든 계정이 열려요(크리덴셜 스터핑).
모든 사이트에 다른 비밀번호를 쓰려면 외울 수 없어요. 그래서 관리자가 필요해요.
마스터 비밀번호 하나만 강하게 만들고(패스프레이즈 권장) 나머지는 관리자가 생성·저장하게 하세요.
2단계 인증(2FA) 을 함께 켜세요. 비밀번호가 유출돼도 한 겹이 남아요. SMS 보다 인증 앱이나 하드웨어 키가 안전해요.
주기적 변경은 이제 권장되지 않아요. NIST 지침이 바뀌었어요 — 강제 변경은 사람들이 예측 가능한 패턴(`Pass1` → `Pass2`)을 만들게 만들거든요. 유출 정황이 있을 때 바꾸는 게 맞아요.
`crypto.getRandomValues` 를 써요 — 암호학적으로 안전한 난수예요. `Math.random()` 은 예측 가능해서 비밀번호에 쓰면 안 돼요.
모듈로 편향을 제거했어요. 난수를 문자 개수로 나눈 나머지를 쓰면 앞쪽 문자가 더 자주 뽑혀요. 균등하게 나눠지지 않는 상위 구간은 버리고 다시 뽑아요.
고른 문자군마다 최소 한 글자를 배치한 뒤 Fisher–Yates 로 섞어요. 안 섞으면 앞자리에 종류 순서가 남아 실제 탐색 공간이 줄어요.
생성된 값은 서버로 전송되지 않아요. 이 페이지는 광고도 붙이지 않았어요 — 비밀번호 옆에 서드파티 프레임을 두지 않기 위해서예요.
4종류를 섞어 16자면 약 105bit 로, 오프라인 공격에도 현실적으로 뚫리지 않아요. 중요한 계정은 20자 이상을 권해요.
기호를 끄고 길이를 늘리세요. 문자 종류가 줄어든 만큼 길이로 메우면 같은 엔트로피를 얻을 수 있어요.
아니요. 생성·표시 전부 브라우저에서 하고 네트워크 요청을 보내지 않아요. 페이지를 벗어나면 값도 사라지니 꼭 관리자에 저장하세요.