던스커버리 | Dawnscovery

안전한 비밀번호 생성기

브라우저 내장 암호학 난수 생성기(Web Crypto API)를 사용하여 해킹 위험 없는 안전한 무작위 비밀번호를 생성합니다.

처리는 전부 사용자 PC 브라우저 안에서 이루어집니다. 생성된 암호는 서버로 전송되거나 저장되지 않습니다. 페이지를 닫기 전에 복사하여 안전한 곳에 보관하세요.

보안 강도: 매우 강력 128 bits
16

여러 개 일괄 생성하기

Math.random()으로 만들면 안 되는 이유

이 도구는 브라우저의 crypto.getRandomValues()로 값을 뽑습니다. 운영체제의 암호학용 난수원에서 받아오는 함수라, 앞서 나온 출력을 아무리 모아도 다음 값을 계산해 낼 수 없습니다.

반면 Math.random()은 속도만 보고 만든 함수입니다. 크롬과 Node.js가 쓰는 V8 엔진은 xorshift128+를 쓰는데, 내부 상태가 128비트뿐이라 연속된 출력 몇 개만 관찰하면 상태를 역산해 이후 값을 전부 재현할 수 있습니다. 주사위를 굴리는 데는 충분하지만 비밀번호에는 쓸 수 없는 이유입니다. 값을 뽑고 섞는 일은 전부 이 페이지 안에서 끝나며 결과는 어디로도 전송되지 않습니다.

엔트로피를 비트로 세는 법

무작위 비밀번호의 강도는 공격자가 뒤져야 할 경우의 수이고, 이것을 2의 거듭제곱으로 적은 값이 엔트로피입니다.

엔트로피(비트) = 길이 × log₂(문자 종류 수)

대소문자 52종에 숫자 10종, 특수문자 32종을 다 켜면 94종이라 한 글자가 약 6.55비트, 16자면 105비트입니다. 아래 표는 초당 1조(10¹²)회를 시도하는 공격자가 평균적으로 절반을 뒤졌을 때 걸리는 시간입니다.

문자 종류 1자당 12자 16자 20자
소문자만 (26종) 4.70비트 56비트 · 13시간 75비트 · 690년 94비트 · 3억 년
소문자 + 숫자 (36종) 5.17비트 62비트 · 27일 83비트 · 13만 년 103비트 · 2100억 년
대소문자 + 숫자 (62종) 5.95비트 71비트 · 51년 95비트 · 7.6억 년 119비트 · 1.1경 년
특수문자까지 (94종) 6.55비트 79비트 · 7500년 105비트 · 5900억 년 131비트 · 4600경 년

8자는 뺐습니다. 94종을 전부 써도 52비트라 같은 조건에서 한 시간을 버티지 못합니다. 이 숫자는 로그인 창을 두드리는 온라인 공격이 아니라 유출된 해시를 오프라인으로 터는 상황을 가정합니다. 서비스가 bcrypt나 Argon2처럼 느린 해시를 썼다면 시도 속도가 초당 수만 회로 떨어져 표의 시간에 억 단위 배수가 붙습니다.

길이가 문자 종류를 이깁니다

위 수식에서 길이는 곱해지고 문자 종류는 로그 안으로 들어갑니다. 종류를 62개에서 94개로 절반 넘게 늘려도 한 글자당 이득은 5.95비트에서 6.55비트, 10% 남짓입니다. 반면 길이는 한 글자 붙일 때마다 그 6.55비트가 통째로 더해집니다. 그래서 이런 역전이 생깁니다.

고를 수 있다면 종류를 늘리기보다 두세 글자를 더 붙이는 편이 언제나 낫습니다. 혼동 문자 제외도 같은 계산으로 판단합니다. i, l, 1, L, o, 0, O를 빼면 풀이 94종에서 87종으로 줄어 16자 기준 105비트가 103비트가 됩니다. 손해가 2비트뿐이라 한 글자만 늘리면 원래보다 높아집니다. 종이에 적어 건네거나 붙여넣기가 막힌 서버 콘솔에 입력해야 한다면 켜 두고, 관리자에 붙여 넣고 다시 볼 일이 없다면 켤 이유가 없습니다.

만든 다음이 더 중요합니다

20자 무작위 문자열을 외울 방법은 없습니다. 이 도구의 결과물은 외우라고 만든 것이 아니라 비밀번호 관리자에 넣으라고 만든 것입니다. 계정 탈취의 대부분은 무차별 대입이 아니라 다른 사이트에서 유출된 비밀번호를 그대로 넣어 보는 자격증명 스터핑이므로, 재사용을 끊는 일이 길이를 늘리는 일보다 먼저입니다.

주기적 변경은 권고에서 빠진 지 오래입니다. 미국 NIST의 SP 800-63B는 2017년 개정에서 정기적 변경 요구를 걷어냈고, 2025년 확정된 개정 4판은 정기적으로 바꾸도록 요구해서는 안 된다고 규정했습니다. 90일마다 바꾸게 하면 끝의 숫자만 하나씩 올라가고 공격자도 그 규칙을 알기 때문입니다. 대신 유출 정황이 있으면 즉시 바꾸도록 요구합니다. 같은 개정판은 단독 인증용 비밀번호의 최소 길이를 15자로 올렸고, 문자 종류를 강제하는 구성 규칙은 부과하지 말라고 못 박았습니다.

사람이 직접 외워야 하는 자리, 이를테면 관리자의 마스터 비밀번호에는 이 도구가 답이 아닙니다. 무작위 단어를 이어 붙인 패스프레이즈가 낫습니다. 널리 쓰이는 7,776개짜리 단어 목록에서 한 단어가 약 12.9비트라, 여섯 단어면 78비트로 94종 12자와 비슷해집니다.

알아두실 점

다른 도구

전체 보기 →