비밀번호 생성기

사이트 조건에 맞춰 길이와 문자를 고르면 안전한 비밀번호를 바로 만듭니다. 외우기 쉬운 단어를 넣을 수도 있습니다.

외우기 쉬운 단어에 무작위 글자를 더해 만듭니다. 단어는 저장하거나 보내지 않습니다.

포함할 문자
만든 비밀번호

입력한 내용은 이 브라우저에서만 처리됩니다.

비밀번호 생성기

비밀번호 생성기는 브라우저의 암호용 난수로 예측하기 어려운 비밀번호를 만드는 도구입니다. 비밀번호는 이 기기 안에서만 만들어지고, 저장하거나 서버로 보내지 않습니다.

이렇게 만든 비밀번호는 외우는 용도가 아닙니다. 외울 비밀번호는 비밀번호 관리자를 여는 비밀번호와 이메일 비밀번호처럼 2~3개로 줄이고, 나머지 사이트의 비밀번호는 브라우저나 비밀번호 관리자에 저장해 자동으로 입력하세요. 직접 쳐야 하는 곳에만 핵심 단어를 넣으면 됩니다.

비밀번호의 강도는 만들 수 있는 비밀번호의 가짓수로 정해집니다. 쓸 수 있는 글자가 많고 길이가 길수록 가짓수가 빠르게 늘어납니다.

가짓수 = 쓸 수 있는 글자 수 ^ 길이

대·소문자, 숫자, 특수문자 94종으로 12자 → 94¹² ≈ 4.8 × 10²³

이 도구는 고른 종류가 모두 한 번 이상 들어가고 같은 글자가 세 번 이어지지 않게 만들기 때문에, 강도에는 이 조건들을 반영한 정확한 가짓수를 보여 줍니다. 핵심 단어를 넣으면 단어는 남이 알 수 있다고 보고 무작위 부분만으로 계산합니다.

사용법

  1. 외우기 쉬운 단어를 넣고 싶다면 "핵심 단어"에 입력하고, 무작위 글자를 단어 앞, 양쪽, 뒤 중 어디에 붙일지 고릅니다. 기본은 만들 때마다 위치를 무작위로 고릅니다. 비워 두면 모두 무작위 글자로 만듭니다.
  2. 사이트의 조건에 맞춰 길이와 문자 종류를 고릅니다. 기본은 주요 사이트 조건을 모두 맞춘 12자이고, 숫자만 고르면 PIN처럼 쓸 수 있습니다.
  3. 사이트가 일부 특수문자만 받는다면 "허용 특수문자"에 받는 문자만 남깁니다.
  4. 만든 비밀번호나 아래 후보 중 하나를 클릭해 복사하고, 브라우저나 비밀번호 관리자에 저장합니다.

관련 용어

비트(엔트로피)

가짓수를 2의 거듭제곱으로 나타낸 값입니다. 1비트가 늘 때마다 가짓수가 두 배가 됩니다. 100비트는 2를 100번 곱한 만큼의 가짓수입니다.

암호용 난수

앞에 나온 값으로 다음 값을 짐작하기 어렵게 만든 난수입니다. 이 도구는 브라우저의 crypto.getRandomValues를 씁니다. 화면 효과 등에 쓰는 Math.random은 암호용이 아니어서 쓰지 않습니다.

헷갈리는 글자

숫자 0과 대문자 O, 소문자 o, 숫자 1과 소문자 l, 대문자 I, 세로선 |처럼 글꼴에 따라 구분하기 어려운 글자입니다. 옮겨 적을 때 틀리지 않도록 이 도구는 이 글자들을 항상 뺍니다. 가짓수는 조금 줄어듭니다.

주요 사이트의 비밀번호 조건

서비스마다 비밀번호 조건이 다릅니다. 공식 도움말에서 확인한 조건은 다음과 같습니다.

기준최소 길이문자 조건
Google12자 권장영문 자판 글자만
Microsoft 3658자4종류 중 3종류
Amazon Pay6자4종류 중 3종류
NIST15자(추가 인증 시 8자)강요하지 않음

그 밖에 Google은 앞뒤 공백과 예전에 쓴 비밀번호를, Microsoft 365는 유니코드 문자를 받지 않고 최대 256자까지 받습니다. Microsoft 365는 14자 이상을 권하고, NIST는 64자 이상까지 받도록 권합니다. Amazon Pay는 이름이나 아이디를 넣지 말라고 안내합니다.

4종류는 대문자, 소문자, 숫자, 특수문자입니다. Apple, 네이버, 카카오처럼 공식 도움말에서 조건을 찾지 못한 서비스는 표에 넣지 않았습니다.

이 도구의 기본값은 위 조건을 모두 맞춘 공통 기준입니다.

  • 길이는 12자입니다. 표의 최소 길이를 모두 넘고 Google이 권하는 길이입니다.
  • 대문자, 소문자, 숫자, 특수문자가 1자 이상씩 꼭 들어갑니다. 3종류 이상을 요구하는 사이트도 받습니다.
  • 특수문자는 영문 자판의 기호 32자만 씁니다. Microsoft 365가 허용하는 기호 목록에 모두 들어 있습니다.
  • 같은 글자는 두 번까지만 이어집니다.
  • 2단계 인증 없이 비밀번호만으로 로그인하는 계정이라면 NIST 기준에 맞춰 15자 이상으로 늘리세요.

같은 글자가 세 번 이상 이어지는 비밀번호를 막는 정책도 있습니다. 위 서비스의 공식 도움말에는 없지만 리눅스의 비밀번호 검사 도구(libpwquality)에 이 설정(maxrepeat)이 있습니다. 피해도 가짓수가 아주 조금만 줄어서 이 도구는 항상 피하고, 강도에도 반영합니다.

만든 비밀번호 아래의 "주요 사이트 조건"에서 지금 비밀번호가 어떤 조건을 충족하는지 바로 볼 수 있습니다. 핵심 단어도 포함해 전체로 확인합니다.

한글 단어는 영문 키로 바꿔 넣습니다

한글 자판은 영문 자판과 같은 키를 씁니다. 한국 표준 두벌식 자판(KS X 5002)에서 ㅋ은 z, ㅓ는 j, ㅍ은 v, ㅣ는 l 키에 있어서 "커피"를 치는 키는 zjvl입니다. ㄳ 같은 겹받침과 ㅘ 같은 이중모음은 보이는 대로 두 키를 칩니다.

비밀번호 칸에서는 브라우저나 운영체제에 따라 한글 입력이 막혀 영문 키가 그대로 들어가기도 합니다. 그래서 이 도구는 한글 단어를 영문 키로 바꿔 넣습니다. 어느 환경에서 입력해도 같은 값이 되고, 영문 자판 글자만 받는 사이트에도 쓸 수 있습니다.

바꾼 키는 대문자와 소문자가 서로 다른 자모를 뜻해서(r은 ㄱ, R은 ㄲ) 한글 단어에는 대소문자 바꾸기를 하지 않습니다.

사이트마다 다른 비밀번호, 이렇게 관리하세요

사이트마다 길이와 문자 조건이 달라서 기본 단어 하나에 사이트 이름이나 숫자를 붙여 쓰는 경우가 많습니다. 하지만 NIST는 서비스 이름, 아이디와 그 변형을 막아야 할 약한 비밀번호로 보고, 영국 국가사이버보안센터(NCSC)는 같은 비밀번호를 여러 곳에 쓰면 비밀번호 하나로 모든 계정이 열린다고 경고합니다.

두 기관의 안내를 합치면 다음 순서가 안전합니다.

  • 비밀번호 관리자를 씁니다. 브라우저에 들어 있는 관리자도 됩니다. 사이트마다 조건에 맞춰 무작위 비밀번호를 만들고 관리자에 저장하면 외울 필요가 없습니다.
  • 외워야 하는 비밀번호만 외웁니다. 관리자와 이메일 비밀번호처럼 꼭 필요한 것만 길고 기억하기 쉽게 만듭니다.
  • 이메일 비밀번호는 다른 곳과 다르게 둡니다. 이메일로 다른 사이트의 비밀번호를 재설정할 수 있기 때문입니다.
  • 2단계 인증을 켭니다.

NIST는 비밀번호 관리자, 특히 생성기가 있는 관리자를 쓰면 더 강한 비밀번호를 고르게 된다고 설명합니다.

몇 달마다 비밀번호를 바꾸라는 사이트라면

NIST는 서비스가 비밀번호를 정기적으로 바꾸라고 강요하지 말고, 유출된 증거가 있을 때만 바꾸게 하라고 합니다. 그래도 몇 달마다 변경을 요구하는 사이트가 있어서, 바꿀 때마다 기억하기 쉬우면서도 예측하기 어려운 방법이 필요합니다.

  • 외우기 쉬운 핵심 단어를 하나 정하고, 무작위 글자를 붙일 위치를 정해 둡니다.
  • 바꿀 때는 단어와 설정은 그대로 두고 "새로 만들기"로 무작위 부분만 새로 만듭니다.
  • 새 비밀번호는 비밀번호 관리자에 바로 저장합니다.

끝의 숫자 하나만 바꾸면 경우의 수가 10가지뿐이지만, 무작위 부분 전체를 새로 만들면 강도에 표시된 만큼의 경우의 수가 새로 생깁니다.

NIST가 권하는 비밀번호 규칙

미국 국립표준기술연구소(NIST)의 디지털 신원 지침(SP 800-63B-4)은 비밀번호를 받는 서비스에 다음을 요구합니다.

  • 비밀번호만으로 로그인한다면 15자 이상이어야 합니다. 다른 인증과 함께 쓴다면 8자 이상입니다.
  • 최대 길이는 64자 이상을 허용하는 것이 좋습니다.
  • 대문자, 숫자, 특수문자를 섞으라는 규칙을 강요하지 않습니다.
  • 정기적으로 바꾸라고 강요하지 않습니다. 유출된 증거가 있을 때만 바꾸게 합니다.
  • 비밀번호 관리자의 자동 입력과 붙여 넣기를 허용합니다.

종류보다 길이가 더 효과적입니다

글자 종류를 늘리는 것보다 길이를 늘리는 것이 가짓수를 더 크게 늘립니다.

비밀번호가짓수비트
소문자만 20자약 2.0 × 10²⁸약 94
94종 모두 12자약 4.8 × 10²³약 79

자주 묻는 질문

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

아니요. 비밀번호는 브라우저 안에서 만들고, 저장하거나 서버로 보내지 않습니다. 페이지를 닫으면 사라집니다.

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

서비스마다 쓸 수 있는 특수문자가 다를 수 있습니다. 받지 않는 문자가 있으면 "새로 만들기"로 다시 만들거나 특수문자를 끄고 길이를 늘려 주세요.

핵심 단어를 넣으면 덜 안전한가요?

단어는 남이 알 수 있다고 보고 강도에 넣지 않으므로, 강도 표시는 무작위 부분만의 값입니다. 강도가 낮다면 전체 길이를 늘려 무작위 부분을 길게 만드세요. 사이트 이름, 아이디, 생일은 단어로 쓰지 마세요.

특수문자를 꼭 넣어야 하나요?

아니요. NIST는 서비스가 문자 종류를 섞도록 강요하지 말라고 합니다. 다만 Microsoft 365와 Amazon Pay처럼 4종류 중 3종류 이상을 요구하는 서비스가 있어서 기본으로 4종류를 모두 넣습니다. 필요 없는 종류는 꺼도 됩니다.

JavaScript를 끄면 쓸 수 없나요?

네. 비밀번호를 미리 만들어 페이지에 넣어 두면 모든 방문자에게 같은 값이 보이므로, 브라우저에서 만들 때만 보여 줍니다.

참고 자료

다른 도구