비밀번호 생성기

만드는 방법

  1. 브라우저 보안 난수(crypto.getRandomValues)로 글자를 뽑습니다.
  2. 예측 가능한 난수(Math.random)는 쓰지 않습니다.
  3. 치우침이 생길 값은 버리고 다시 뽑습니다. (거부 샘플링)
  4. 문자 종류·첫 글자·연속 문자 조건을 모두 검사합니다.
  5. 조건을 하나라도 어기면 그 비밀번호를 통째로 버리고 새로 만듭니다.
  6. 강도를 엔트로피(비트)로 표시합니다.

강도 계산 기준

단어 목록: EFF Long Wordlist © Electronic Frontier Foundation, CC BY 3.0 US. 숫자 표기와 하이픈이 든 단어 4개를 빼고 7,772개를 썼습니다. 변경 내역

자주 묻는 질문

안전한 비밀번호는 어떻게 만드나요?

길이가 가장 중요합니다. 이 도구는 20자리를 기본값으로 두었고, 줄이더라도 16자리 이상(이 도구의 권장)은 지켜 무작위로 만드세요. 사이트마다 서로 다른 비밀번호를 쓰세요. 이름·생일·전화번호·키보드 배열(qwer1234)처럼 추측할 수 있는 값은 피하고, 기억하기 어려우면 비밀번호 관리자(브라우저 또는 전용 앱)에 저장하세요. 가능하면 2단계 인증도 함께 켜 두는 것이 좋습니다. (출처: KISA(한국인터넷진흥원) 비밀번호 선택 및 이용 안내, NIST SP 800-63B Digital Identity Guidelines (기본 20자리·권장 16자리 이상은 이 도구의 기준이며 두 기관의 수치가 아님))

만든 비밀번호가 서버로 전송되거나 저장되나요?

아닙니다. 비밀번호는 지금 보고 있는 브라우저 안에서만 만들어지며 서버로 보내지 않고, 주소(URL)·쿠키·브라우저 저장소에도 남기지 않습니다. 페이지를 새로고침하거나 닫으면 사라집니다. 이 도구의 동작 방식이며, 개발자 도구의 네트워크 탭에서 직접 확인할 수 있습니다. (출처: 이 페이지 동작 방식(public/js/password-core.js))

단어 조합형 비밀번호도 안전한가요?

단어를 무작위로 여러 개 고르면 길이가 길어져 안전하면서도 외우기 쉽습니다. 이 도구는 7,772개 영어 단어 목록에서 단어마다 약 12.9비트를 얻으며, 5개 단어는 약 64.6비트입니다. 숫자 붙이기(0~99)를 켜면 약 6.6비트(log2 100)가 더해져 약 71.3비트가 됩니다. 단어 수가 적을수록 약해지므로 화면의 강도 표시를 확인하세요. (출처: EFF Long Wordlist(CC BY 3.0 US), https://www.eff.org/deeplinks/2016/07/new-wordlists-random-passphrases)

특수문자를 받지 않는 사이트에서는 어떻게 하나요?

사이트마다 허용하는 기호가 달라서 기본값은 대부분 허용되는 ! @ # $ % ^ & * - _ 만 씁니다. 그래도 거부되면 특수문자를 끄고 길이를 늘리세요. 기호를 줄여도 길이를 늘리면 강도는 유지됩니다. "모든 기호"는 허용 범위가 넓은 사이트에서만 선택하세요.

강도(약함/보통/강함)는 어떤 기준인가요?

일반 무작위는 엔트로피(비트) = 길이 × log2(쓸 수 있는 문자 수)로 계산한 값을 "약 n비트 이하"로 표시합니다. 선택한 종류를 모두 넣고 연속 문자를 빼는 조건 때문에 실제 경우의 수는 이 값보다 조금 작기 때문입니다. 단어 조합형은 단어 수 × log2(단어 목록 크기)에 숫자 붙이기(log2 100)를 더한 정확한 값을 "약 n비트"로 표시합니다. 50비트 미만은 약함, 70비트 미만은 보통, 70비트 이상은 강함으로 표시하는 이 도구의 자체 기준이며 법적·인증 기준이 아닌 참고용 표시입니다. (출처: 이 도구의 자체 기준(엔트로피 = 길이 × log2(문자 수)))

관련 도구