비밀번호 생성기 — 랜덤 비밀번호·암호문구·PIN
길이와 영문 대소문자·숫자·특수문자를 골라 안전한 랜덤 비밀번호를 만들고, 엔트로피로 강도를 보여 줍니다. 외우기 쉬운 암호문구와 PIN도 만들며 어디에도 전송되지 않습니다
도구를 불러오는 중…
길이와 문자 종류를 정해 무작위 비밀번호를 만드는 비밀번호 생성기입니다. 영문 대소문자, 숫자, 특수문자를 섞은 랜덤 비밀번호뿐 아니라 외우기 쉬운 단어 조합인 암호문구와 숫자 PIN도 만듭니다. 만들 때마다 엔트로피(비트)와 계산식을 함께 보여 주므로 몇 자리면 충분한지 숫자로 판단할 수 있고, 만든 값은 브라우저 밖으로 나가지 않습니다.
사용 방법
- '비밀번호' 탭에서 '길이' 막대를 4~128자 사이로 맞춥니다. 처음에는 16자로 정해져 있습니다.
- '대문자 (A–Z)', '소문자 (a–z)', '숫자 (0–9)', '기호' 중 쓸 종류를 켭니다. 가입하려는 사이트가 일부 특수문자만 허용하면 '쓸 기호' 칸에서 나머지를 지웁니다.
- 종이에 옮겨 적거나 소리 내어 불러 줄 일이 있으면 '헷갈리는 글자 빼기 (O 0 I l 1)'를 켭니다. '고른 종류를 각각 1개 이상 넣기'는 처음부터 켜져 있습니다.
- '만들 개수'에 1~50을 넣으면 그만큼 비밀번호가 나오고, '새로 만들기'를 누를 때마다 새 값으로 바뀝니다.
- 마음에 드는 줄의 '복사'를 누르거나 '모두 복사'로 전체를 복사합니다. 옆에 다른 사람이 있으면 '가리기'를 눌러 화면의 값을 감춥니다.
- 외우기 쉬운 비밀번호가 필요하면 '암호문구' 탭에서 '단어 수'와 '구분자'를 고르고, 숫자만 쓰는 곳이면 'PIN' 탭에서 '자릿수'를 고릅니다.
계산 방식과 참고
- 모든 글자는 브라우저의 crypto.getRandomValues로 고르며, 특정 글자가 더 자주 나오지 않도록 치우침 없이 뽑습니다.
- 만든 비밀번호는 어디에도 전송하거나 저장하지 않고 페이지를 닫으면 사라집니다. 길이, 문자 종류 같은 설정만 이 기기에 기억합니다.
- 기호는 키보드로 칠 수 있는 32가지 특수문자(! " # $ % 등)이고, 네 종류를 모두 켜면 쓸 수 있는 문자는 94가지입니다. '헷갈리는 글자 빼기'를 켜면 89가지가 됩니다.
- 강도 등급은 28비트 미만 '매우 약함', 36비트 미만 '약함', 60비트 미만 '보통', 100비트 미만 '강함', 그 이상 '매우 강함'으로 나눈 대략적인 구분이며 공식 표준은 아닙니다.
- 암호문구는 EFF Large Wordlist(영어 단어 7,776개, CC BY 3.0 US)에서 3~12개를 고르고, PIN은 4·5·6·8·10·12자리 중에서 고릅니다.
안전한 비밀번호는 몇 자리? 길이별 엔트로피 비교
대문자, 소문자, 숫자, 기호 네 종류(94가지 문자)를 모두 쓰면 8자는 약 52.4비트로 '보통', 12자는 약 78.7비트로 '강함', 16자는 약 104.9비트로 '매우 강함'이 표시됩니다. 엔트로피가 1비트 늘 때마다 가능한 경우의 수는 두 배가 됩니다. 초당 100억 번 추측할 수 있다고 가정하면 94가지 문자로 된 8자 비밀번호의 모든 경우(약 6.1 × 10^15)를 시험하는 데 약 7일이 걸리지만, 12자라면 약 150만 년이 걸립니다.
길이가 문자 종류보다 효과가 큽니다. 기호를 빼고 영문 대소문자와 숫자(62가지)만 써도 16자는 약 95.3비트로, 기호를 넣은 12자(약 78.7비트)보다 강합니다. 그래서 사이트가 특수문자를 일부만 받거나 아예 받지 않을 때는 길이를 늘리는 쪽이 낫습니다. 다만 사이트마다 요구하는 조합 규칙과 최대 길이가 다르므로 가입 화면의 안내에 맞춰야 합니다.
비밀번호 엔트로피 계산 방법
모든 글자를 같은 확률로 고른 비밀번호의 엔트로피는 글자 수 × log₂(쓸 수 있는 문자 수)입니다. 16자, 94가지 문자라면 16 × log₂(94) ≈ 104.9비트입니다. 이 값은 무작위로 만든 비밀번호에만 맞는 계산이며, 사람이 직접 지은 비밀번호는 단어와 패턴 때문에 같은 길이라도 훨씬 약합니다.
'고른 종류를 각각 1개 이상 넣기'를 켜면 조건에 맞지 않는 결과는 버리고 다시 뽑습니다. 그래서 조건을 만족하는 모든 비밀번호가 똑같은 확률로 나오고, 엔트로피는 조건을 만족하는 경우의 수만 세어 조금 줄어든 값으로 표시됩니다. 16자에서는 약 104.6비트로 0.3비트 정도 차이 나고, 8자에서는 약 51.3비트로 1비트가량 줄어듭니다.
암호문구(passphrase)와 랜덤 비밀번호 차이
암호문구는 단어 목록에서 무작위로 고른 단어 몇 개를 이은 것입니다. 7,776개 단어 가운데 하나를 고를 때마다 log₂(7,776) ≈ 12.9비트가 더해지므로, 4단어는 약 51.7비트, 5단어는 약 64.6비트, 6단어는 약 77.5비트입니다. 6단어 암호문구는 94가지 문자로 만든 12자 랜덤 비밀번호와 강도가 거의 같으면서 소리 내어 읽고 외우기가 훨씬 쉽습니다.
'숫자 1개 붙이기'를 켜면 단어 하나 뒤에 숫자 하나가 붙어 log₂(10 × 단어 수)만큼 늘어나고, 6단어라면 약 5.9비트가 더해집니다. 숫자나 대문자를 요구하는 사이트에는 '숫자 1개 붙이기'와 '단어 첫 글자를 대문자로'를 켜면 됩니다. 구분자는 이 계산에서 엔트로피를 더하지 않으며, '구분자'를 '없음'으로 고르면 단어 경계가 겹칠 수 있어 실제 값이 조금 낮을 수 있습니다.
온라인 비밀번호 생성기, 써도 안전할까
비밀번호 생성기를 고를 때 확인할 점은 두 가지입니다. 하나는 난수의 품질이고, 다른 하나는 만든 값이 어디로 가는지입니다. 이 도구는 암호용 난수를 내는 브라우저 기능인 crypto.getRandomValues만 쓰고, 만든 값을 서버로 보내거나 기록하지 않습니다. 일반 프로그래밍용 난수(Math.random)는 쓰지 않습니다.
만든 비밀번호는 비밀번호 관리자나 브라우저의 비밀번호 저장 기능에 바로 넣어 두는 것이 안전합니다. 사이트마다 다른 비밀번호를 쓰면 한 곳에서 유출되어도 다른 계정까지 뚫리지 않습니다. 공용 컴퓨터에서 복사했다면 클립보드에 값이 남아 있을 수 있으니 다른 글을 한 번 복사해 덮어 두는 편이 좋습니다.
자주 묻는 질문
- 비밀번호는 몇 자리로 만들어야 안전한가요?
- 무작위로 만든다면 네 종류를 모두 쓴 12자(약 78.7비트)가 '강함', 16자(약 104.9비트)가 '매우 강함'으로 표시됩니다. 사이트가 허용하는 한 길게 만드는 것이 가장 효과적입니다.
- 특수문자 포함 랜덤 비밀번호는 어떻게 만드나요?
- '기호'를 켜 두면 특수문자가 들어간 비밀번호가 만들어집니다. '고른 종류를 각각 1개 이상 넣기'가 켜져 있으면 특수문자가 최소 1개는 반드시 들어갑니다.
- 특정 특수문자를 못 쓰는 사이트는 어떻게 하나요?
- '쓸 기호' 칸에서 허용되지 않는 기호를 지우면 남은 기호만 사용합니다. 칸에 들어간 글자, 숫자, 공백은 무시됩니다.
- 비밀번호 생성기로 만든 비밀번호가 저장되나요?
- 저장되지 않습니다. 이 브라우저 안에서만 만들어지고 서버로 보내지 않으며, 페이지를 닫으면 사라집니다.
- 헷갈리는 글자 빼기는 무엇인가요?
- 대문자 O와 숫자 0, 대문자 I와 소문자 l과 숫자 1처럼 서로 비슷해 보이는 다섯 글자를 빼는 설정입니다. 손으로 옮겨 적을 때 실수를 줄여 줍니다.
- 암호문구(passphrase)는 무엇인가요?
- 무작위로 고른 영어 단어 여러 개를 이은 비밀번호입니다. 7,776개 단어 목록에서 6개를 고르면 약 77.5비트로, 12자 랜덤 비밀번호와 비슷한 강도입니다.
- 비밀번호 엔트로피는 어떻게 계산하나요?
- 글자 수 × log₂(쓸 수 있는 문자 수)입니다. 계산식은 결과 아래에 실제 숫자로 표시됩니다.
- 6자리 PIN은 몇 가지 경우가 있나요?
- 1,000,000가지이며 엔트로피는 약 19.9비트입니다. PIN은 보통 입력 횟수 제한과 함께 쓰이므로 짧아도 쓰이지만, 비밀번호 대신 쓰기에는 약합니다.
- 랜덤 비밀번호를 여러 개 한 번에 만들 수 있나요?
- '만들 개수'에 최대 50까지 넣으면 그만큼 한꺼번에 만들어지고, '모두 복사'로 한 줄에 하나씩 복사됩니다.
- PIN에 1234나 같은 숫자가 나와도 괜찮은가요?
- 무작위 결과이므로 그런 숫자도 나올 수 있습니다. 쉽게 추측되는 조합이 마음에 걸리면 '새로 만들기'를 눌러 다시 만들면 됩니다.