엔트로피로 강도를 재는 이유
비밀번호의 강도는 "공격자가 몇 번을 시도해야 맞히는가"로 정해집니다. 이것을 2의 거듭제곱으로 나타낸 값이 엔트로피(bit)입니다. 글자 종류가 N개이고 길이가 L이면 이론상 L × log2N bit입니다. 소문자만 8자면 8 × 4.7 ≈ 38 bit, 대소문자·숫자·기호 12자면 12 × 6.6 ≈ 79 bit입니다. 하지만 사람이 고른 비밀번호는 이론값보다 훨씬 약합니다. Password1!은 네 종류를 다 썼지만 공격자가 쓰는 규칙("첫 글자 대문자, 끝에 숫자와 느낌표")에 곧바로 잡히기 때문입니다. 그래서 이 도구는 이론값에서 시작해 흔한 비밀번호, 연속·반복, 자판 배열, 날짜 같은 패턴을 발견할 때마다 bit를 깎습니다. 계산 방식은 zxcvbn 같은 공개 추정기의 접근을 단순화한 것이며, 모든 처리는 브라우저 안에서 끝납니다.
온라인 공격과 오프라인 공격
로그인 화면에 직접 시도하는 온라인 공격은 서버가 횟수를 제한하므로 초당 수십~수천 회를 넘기 어렵습니다. 여기서는 초당 1,000회로 잡았습니다. 반면 사이트가 해킹되어 비밀번호 해시가 유출되면 공격자는 자기 장비에서 마음껏 시도합니다. 일반 GPU 몇 장으로 MD5·SHA-1 해시는 초당 수백억 회, 제대로 설계된 bcrypt·Argon2는 초당 수천~수만 회 수준입니다. 초당 1010회는 약한 해시를 가정한 비관적 기준입니다. 표시된 시간은 전체 경우의 수의 절반을 시도했을 때의 평균값입니다.
한국어 사용자가 자주 쓰는 약한 패턴
한글 단어를 영문 자판 그대로 친 qlalfqjsgh(비밀번호), dkssudgktpdy(안녕하세요) 같은 문자열은 영문 사전에는 없지만 국내 유출 데이터를 학습한 사전에는 들어 있습니다. 두벌식 자판의 한 줄(ㅂㅈㄷㄱ, ㅁㄴㅇㄹ)을 순서대로 친 패턴도 qwer, asdf와 같은 것으로 취급해야 합니다. 생년월일(19920315), 전화번호 뒷자리, 학번도 공격자가 계정 정보와 함께 가장 먼저 대입하는 값입니다.
좋은 비밀번호를 만드는 방법
복잡한 규칙보다 길이가 중요합니다. 서로 관계없는 단어 네 개를 이어 붙인 "패스프레이즈"(예: 종이컵 전봇대 소나기 주판)는 외우기 쉬우면서도 네 개면 50 bit 안팎, 다섯~여섯 개면 70 bit를 넘깁니다. 단, 유명한 문장이나 가사는 사전에 있으니 피해야 합니다. 현실적으로는 비밀번호 관리자가 만든 16자 이상의 무작위 문자열을 쓰고 사람은 관리자 마스터 비밀번호 하나만 외우는 것이 가장 안전합니다. 비밀번호를 주기적으로 바꾸는 것보다 사이트마다 다르게 쓰고 2단계 인증을 켜는 편이 효과가 큽니다. 이 검사 도구는 약점을 알려 줄 뿐이며, 높은 점수가 나와도 여러 사이트에서 같은 비밀번호를 재사용하면 의미가 없습니다.
자주 묻는 질문
입력한 비밀번호가 정말 전송되지 않나요?
네. 이 페이지는 정적 HTML이고 검사 로직 전체가 자바스크립트로 브라우저 안에서 실행됩니다. 네트워크 요청이 없다는 것은 개발자 도구의 네트워크 탭에서 직접 확인할 수 있습니다. 그래도 실제 비밀번호 대신 비슷한 구조의 예시를 넣어 보는 것이 습관으로서는 좋습니다.
다른 검사 사이트와 점수가 달라요.
패턴 감점 방식과 공격 속도 가정이 도구마다 다릅니다. 절대 점수보다 "어떤 약점이 지적되는가"를 보고 고치는 것이 목적입니다.
한글 비밀번호는 안전한가요?
한글을 허용하는 서비스는 드물지만, 허용된다면 글자당 경우의 수가 2,350개로 커서 짧아도 강합니다. 다만 입력기 문제로 로그인이 번거로울 수 있습니다.
흔한 비밀번호 목록은 어디서 온 건가요?
공개된 유출 데이터 통계(SplashData, NCSC 등)에서 반복적으로 상위에 오르는 약 110개를 내장했습니다. 전체 목록은 수억 개이므로 여기 없다고 안전하다는 뜻은 아닙니다.