TOOL 생활툴

안전한 비밀번호 생성기

길이와 문자 종류만 고르면 암호학적으로 안전한 난수로 비밀번호를 만들어 드립니다. 생성된 비밀번호는 서버로 전송되지 않습니다.

비밀번호의 강도는 '복잡함'이 아니라 '길이'가 결정합니다

많은 사람이 P@ssw0rd! 처럼 기호와 숫자를 섞으면 안전하다고 믿습니다. 하지만 이런 치환은 공격자가 가장 먼저 시도하는 규칙입니다. a를 @로, o를 0으로, i를 1로 바꾸는 변형은 이미 모든 크래킹 도구에 사전 규칙으로 내장되어 있어서, 원래 단어가 사전에 있다면 치환을 아무리 해도 추가되는 안전성은 거의 없습니다.

실제로 강도를 결정하는 것은 엔트로피입니다. 사용 가능한 문자가 N종이고 길이가 L일 때 엔트로피는 L × log₂N 비트로 계산됩니다. 소문자·대문자·숫자·기호를 모두 쓰면 문자 후보는 약 86종이고, log₂86 ≈ 6.43이므로 한 글자가 약 6.4비트를 기여합니다. 즉 한 글자 늘리는 것이 문자 종류를 늘리는 것보다 훨씬 효율적입니다.

길이문자 종류엔트로피초당 1,000억 회 대입 시 평균 해독 시간
8자소문자만약 38비트약 1초
8자대소문자+숫자+기호약 51비트약 3시간
12자대소문자+숫자+기호약 77비트약 24,000년
16자대소문자+숫자+기호약 103비트사실상 무한
20자소문자만약 94비트약 3천억 년

표를 보면 흥미로운 사실이 보입니다. 소문자만 쓴 20자모든 문자를 섞은 12자보다 오히려 안전합니다. 외우기 어려운 기호를 억지로 끼워 넣는 대신 길이를 늘리는 편이 기억하기도 쉽고 안전하기도 합니다.

보안 전문가들이 권장하는 최소선은 중요 계정 16자 이상, 일반 계정 12자 이상입니다. 금융·이메일·클라우드처럼 다른 계정 복구의 출발점이 되는 곳은 20자 이상을 권합니다.

정말 위험한 것은 약한 비밀번호가 아니라 '같은 비밀번호'입니다

현실에서 계정이 털리는 가장 흔한 경로는 무차별 대입이 아닙니다. 크리덴셜 스터핑, 즉 어딘가에서 유출된 아이디·비밀번호 조합을 다른 사이트에 그대로 넣어 보는 공격입니다. 작은 쇼핑몰 한 곳이 뚫려서 내 이메일과 비밀번호가 유출되면, 공격자는 그 조합을 포털·은행·SNS에 순서대로 넣어 봅니다.

이때 아무리 20자짜리 강력한 비밀번호를 썼더라도, 그것을 여러 사이트에 재사용했다면 방어력은 0입니다. 유출된 비밀번호는 뚫는 것이 아니라 그냥 입력하면 되기 때문입니다. 그래서 원칙은 하나입니다.

특히 이메일 계정은 다른 모든 서비스의 비밀번호 재설정 링크가 도착하는 곳이므로 사실상 마스터키입니다. 이메일 계정만큼은 다른 어디에서도 쓰지 않는 고유하고 긴 비밀번호와 2단계 인증을 반드시 적용하세요.

이 생성기가 동작하는 방식

이 도구는 브라우저의 crypto.getRandomValues()를 사용합니다. 자바스크립트의 흔한 Math.random()은 통계적으로 고르게 보이지만 예측 가능한 의사난수라서 보안 용도로는 부적합합니다. 반면 crypto.getRandomValues()는 운영체제의 암호학적 난수원에서 값을 받아 오기 때문에 이전 출력으로 다음 출력을 추측할 수 없습니다.

난수를 문자 범위로 줄일 때 단순히 나머지 연산만 쓰면 앞쪽 문자가 미세하게 더 자주 뽑히는 모듈로 편향이 생깁니다. 이 도구는 범위를 벗어난 값을 버리고 다시 뽑는 방식으로 편향을 제거합니다. 또한 선택한 문자 종류가 결과에 최소 한 글자씩은 반드시 포함되도록 배치한 뒤 전체를 다시 섞습니다.

표시되는 ‘예상 해독 시간’은 공격자가 초당 1,000억 회 대입할 수 있다고 가정한 값입니다. 이는 고성능 GPU 여러 대로 취약한 해시를 공격하는 상황을 상정한 보수적인 수치이며, 실제 서비스가 제대로 된 해시 함수를 쓴다면 훨씬 오래 걸립니다.

만든 비밀번호를 안전하게 다루는 법

좋은 비밀번호를 만들어도 보관을 잘못하면 소용이 없습니다. 실무에서 가장 흔한 실수는 메모장 파일, 메신저 ‘나에게 보내기’, 이메일 임시보관함, 스프레드시트에 평문으로 적어 두는 것입니다. 이 위치들은 기기 하나만 잠금 해제되면 통째로 노출됩니다.

비밀번호를 주기적으로 강제 변경하는 관행은 최근 여러 보안 기관 지침에서 권장 목록에서 빠졌습니다. 자주 바꾸라고 하면 사람들이 pw2025-01pw2025-02 처럼 예측 가능한 변형을 쓰기 때문입니다. 대신 유출 정황이 있을 때 즉시 변경하는 편이 훨씬 효과적입니다.

비밀번호 재설정용 ‘보안 질문’의 답도 사실대로 적을 필요는 없습니다. 출신 초등학교나 어머니 성함은 검색이나 SNS로 알아낼 수 있습니다. 보안 질문의 답도 랜덤 문자열로 만들어 비밀번호 관리자에 함께 저장하는 것이 안전합니다.

자주 묻는 질문

만든 비밀번호가 서버로 전송되나요?
아닙니다. 생성 로직 전체가 당신의 브라우저에서만 실행됩니다. 네트워크로 나가는 값이 없고, 생성 결과는 화면에만 표시되며 새로고침하면 사라집니다. 그래도 불안하다면 인터넷 연결을 끊은 상태에서 이 페이지를 열어 사용해도 정상 동작합니다.
비밀번호는 몇 자가 적당한가요?
일반 서비스는 12자 이상, 이메일·금융·클라우드처럼 중요한 계정은 16~20자 이상을 권장합니다. 문자 종류를 늘리는 것보다 길이를 늘리는 편이 엔트로피 증가 효율이 좋습니다. 사이트가 길이를 제한한다면 허용하는 최대 길이를 쓰세요.
기호를 안 받는 사이트는 어떻게 하나요?
기호 체크를 끄고 대신 길이를 4~6자 더 늘리세요. 대소문자와 숫자만 써도 62종이므로 한 글자당 약 5.95비트입니다. 16자면 95비트 이상으로 충분히 안전합니다. 표에서 보듯 소문자만 쓴 20자가 전부 섞은 12자보다 강합니다.
비밀번호 관리자를 쓰는 게 정말 안전한가요?
관리자 하나가 뚫리면 전부 털린다는 우려는 이해되지만, 현실의 사고는 대부분 '같은 비밀번호 재사용' 때문에 일어납니다. 주요 관리자는 마스터 비밀번호를 서버에 보내지 않는 제로 지식 구조로 설계되어 있습니다. 아무것도 안 쓰면서 몇 개를 돌려쓰는 것보다는 훨씬 안전합니다.
‘헷갈리는 문자 제외’는 언제 쓰나요?
비밀번호를 종이에 적거나 전화로 불러 주거나 TV·프로젝터 화면에 띄워야 할 때 유용합니다. 0과 O, 1과 l과 I를 헷갈릴 여지를 없애 줍니다. 다만 문자 후보가 5개 줄어들어 엔트로피가 아주 조금 낮아지므로, 그만큼 길이를 1~2자 늘려 주면 좋습니다.

함께 쓰면 좋은 도구