어떻게 만드나
브라우저의 crypto.getRandomValues를 사용합니다. Math.random()과 달리 암호학적으로 안전한 난수라 예측이 불가능합니다. 고른 문자 종류마다 최소 한 글자씩 포함되도록 한 뒤 나머지를 채우고 섞습니다. 만들어진 비밀번호는 화면에만 있고 어디에도 전송되지 않습니다.
길이가 복잡도보다 중요합니다
8자리에 특수문자 잔뜩 넣는 것보다 16자리 영문+숫자가 훨씬 안전합니다. 엔트로피(bit)는 길이에 비례해서 늘어나는데, 요즘 GPU는 초당 수백억 번 시도가 가능해서 40bit 이하는 몇 시간 안에 뚫립니다. 60bit 이상이면 실질적으로 안전하고, 80bit 이상이면 충분합니다. 이 생성기의 기본값(16자, 4종류 혼합)은 약 95bit입니다.
외울 수 없는 비밀번호는 어떻게 관리하나
비밀번호 관리자를 쓰는 게 정답입니다. iPhone·Mac은 기본 암호 앱, Android·Chrome은 Google 비밀번호 관리자가 이미 들어 있고, Bitwarden은 무료로 모든 기기에서 동기화됩니다. 관리자의 마스터 비밀번호 하나만 외우면 나머지는 여기서 만든 것처럼 긴 랜덤 문자열을 써도 됩니다.
사이트별 제한이 있을 때
특수문자를 못 쓰게 하거나 특정 문자만 허용하는 사이트가 있습니다. 그럴 땐 특수문자를 끄고 길이를 20자 이상으로 늘리면 강도가 비슷하게 유지됩니다. 헷갈리는 문자 제외 옵션은 종이에 적어 두거나 말로 전달할 때 켜 두세요.
자주 묻는 질문
생성된 비밀번호를 기록하나요?
아니요. 자바스크립트가 브라우저 안에서 만들고 페이지를 벗어나면 사라집니다. 네트워크 요청이 없는 건 개발자 도구 Network 탭에서 확인할 수 있습니다.
한글 비밀번호는 안 되나요?
대부분의 사이트가 영문·숫자·특수문자만 허용해서 지원하지 않습니다.