랜덤 비밀번호 생성기는 원하는 길이와 문자 종류(소문자·대문자·숫자·특수문자)를 골라, 사람이 예측할 수 없는 안전한 비밀번호를 즉석에서 만들어 주는 도구입니다. 계정마다 서로 다른 강한 비밀번호를 써야 한다는 건 알지만 매번 직접 짜내기는 번거롭습니다. 이 도구는 슬라이더와 버튼 몇 번으로 규칙에 맞는 비밀번호를 무한히 뽑아낼 수 있어, 회원가입·비밀번호 변경·와이파이 암호 설정 같은 순간에 바로 쓸 수 있습니다.
사람이 직접 만든 비밀번호는 이름·생일·좋아하는 단어처럼 추측 가능한 패턴이 섞이기 쉽고, 같은 비밀번호를 여러 사이트에 재사용하는 문제도 흔합니다. 반면 이 도구는 브라우저에 내장된 암호학적 난수 생성기(Web Crypto의 crypto.getRandomValues)를 사용해, 통계적으로 예측이 극히 어려운 문자열을 만듭니다. 길이가 길고 문자 종류가 다양할수록 가능한 조합의 수가 폭발적으로 늘어나 무차별 대입(brute-force) 공격에 강해집니다.
무엇보다 이 생성기는 모든 계산을 여러분의 브라우저 안에서만 수행합니다. 만들어진 비밀번호는 서버로 전송되거나 어딘가에 저장되지 않으므로, 화면에 뜬 비밀번호를 복사해 바로 사용해도 유출 걱정이 없습니다. 아래에서는 강한 비밀번호의 조건, 길이·문자 종류에 따른 조합 경우의 수와 보안 강도, 이 도구가 안전한 이유, 그리고 비밀번호를 실제로 관리하는 방법까지 정리했습니다.
사용 방법
- 길이 슬라이더로 원하는 비밀번호 자릿수를 정합니다. 4자부터 64자까지 조절할 수 있으며, 일반적인 계정에는 16자 이상을 권장합니다.
- 소문자·대문자·숫자·특수문자 버튼을 눌러 사용할 문자 종류를 켜고 끕니다. 종류를 많이 켤수록 비밀번호가 강해지며, 사이트 규칙에 특수문자 금지 같은 제한이 있으면 해당 종류만 끄면 됩니다.
- 옵션을 바꿀 때마다 조건에 맞는 비밀번호가 자동으로 새로 생성됩니다. 마음에 드는 결과가 나올 때까지 다시 생성(↻) 버튼을 눌러 여러 번 뽑아 볼 수 있습니다.
- 복사 버튼을 눌러 비밀번호를 클립보드에 담은 뒤, 가입 폼이나 비밀번호 변경 화면에 붙여 넣습니다. 사용 후에는 클립보드에 남은 값을 지우거나 다른 텍스트를 복사해 덮어쓰는 것이 안전합니다.
강한 비밀번호의 조건
비밀번호의 강도는 결국 '공격자가 정답을 맞히기까지 시도해야 하는 경우의 수'로 결정됩니다. 이 경우의 수를 키우는 방법은 두 가지, 길이를 늘리는 것과 사용하는 문자 종류를 늘리는 것입니다. 그중에서도 길이는 조합 수를 지수적으로 늘리기 때문에 가장 효과적입니다.
- 충분한 길이: 최소 12자, 가능하면 16자 이상을 권장합니다. 길이 한 자를 늘릴 때마다 조합 수가 문자 종류 수만큼 곱해져 강도가 급격히 올라갑니다.
- 문자 종류의 다양성: 소문자·대문자·숫자·특수문자를 함께 쓰면 한 자리에 들어갈 수 있는 후보가 85종으로 늘어, 소문자만 쓸 때(26종)보다 훨씬 강해집니다.
- 예측 불가능성: 이름·생일·전화번호·사전에 있는 단어, 'password'·'123456'·'qwerty' 같은 흔한 문자열은 피해야 합니다. 이런 값은 공격자의 사전(dictionary) 목록에 이미 들어 있습니다.
- 재사용 금지: 한 사이트가 뚫려 비밀번호가 유출되면 공격자는 같은 값으로 다른 사이트에 로그인을 시도합니다(크리덴셜 스터핑). 사이트마다 다른 비밀번호를 써야 하는 이유입니다.
복잡함보다 길이가 먼저입니다
특수문자를 억지로 섞은 짧은 비밀번호(예: 8자)보다, 문자 종류가 단순하더라도 긴 비밀번호가 대체로 더 안전합니다. 조합 수는 길이의 지수로 커지기 때문입니다. 외우기 쉬우면서도 강한 비밀번호가 필요하다면, 서로 무관한 단어 4~5개를 이어 붙인 긴 문장형 암호(패스프레이즈)도 좋은 대안입니다.
문자 종류별 한 자리 경우의 수
이 도구가 사용하는 문자 집합의 크기는 아래와 같습니다. 비밀번호 한 자리에 들어갈 수 있는 후보(문자 풀)가 클수록, 같은 길이라도 조합 수가 많아집니다. '비트'는 정보 이론에서 쓰는 강도 단위로, 1비트가 늘 때마다 경우의 수가 2배가 된다는 뜻입니다.
| 선택한 종류 | 문자 풀 크기 | 1자리당 엔트로피 |
|---|---|---|
| 소문자만 | 26종 | 약 4.70비트 |
| 소문자+대문자 | 52종 | 약 5.70비트 |
| 소문자+대문자+숫자 | 62종 | 약 5.95비트 |
| 네 종류 모두 | 85종 | 약 6.41비트 |
엔트로피란?
엔트로피는 비밀번호가 얼마나 예측하기 어려운지를 비트 단위로 나타낸 값입니다. 전체 엔트로피는 '1자리당 엔트로피 × 길이'로 계산합니다. 예를 들어 네 종류를 모두 켠 16자 비밀번호의 엔트로피는 약 6.41 × 16 ≈ 102비트로, 이는 2의 102제곱(약 5×10³⁰)가지 조합 중 하나라는 의미입니다.
길이별 조합 경우의 수와 보안 강도
아래 표는 네 가지 문자 종류를 모두 켰을 때(문자 풀 85종) 길이에 따른 조합 경우의 수와 대략적인 보안 강도입니다. 조합 수가 커질수록 무차별 대입으로 뚫는 데 걸리는 시간이 기하급수적으로 늘어납니다.
| 길이 | 조합 경우의 수(약) | 엔트로피 | 강도 |
|---|---|---|---|
| 8자 | 2.7 × 10¹⁵ | 약 51비트 | 약함 |
| 12자 | 1.4 × 10²³ | 약 77비트 | 보통 |
| 16자 | 7.4 × 10³⁰ | 약 103비트 | 강함 (권장) |
| 20자 | 3.9 × 10³⁸ | 약 128비트 | 매우 강함 |
| 24자 | 2.0 × 10⁴⁶ | 약 154비트 | 매우 강함 |
8자 비밀번호가 위험한 이유
요즘 그래픽카드(GPU)는 초당 수십억~수천억 회의 비밀번호 조합을 시험할 수 있습니다. 그래서 8자 이하 비밀번호는 유출된 해시가 공격자 손에 들어가면 짧게는 몇 시간~며칠 만에 뚫릴 수 있습니다. 반면 16자 이상은 현존하는 컴퓨팅 자원으로도 사실상 계산이 불가능한 수준의 시간이 필요합니다.
이 도구가 안전한 이유 — 서버로 전송되지 않습니다
온라인 비밀번호 생성기를 쓸 때 가장 큰 걱정은 '내가 만든 비밀번호가 그 사이트 서버에 기록되지 않을까'입니다. 이 도구는 그 걱정이 필요 없도록 설계됐습니다. 비밀번호 생성은 전적으로 여러분의 브라우저(클라이언트) 안에서만 이뤄집니다.
- 브라우저 내장 암호 난수 사용: 자바스크립트 표준인 Web Crypto API의 crypto.getRandomValues로 난수를 얻습니다. 이는 운영체제의 암호학적 난수원에 기반한, 예측 불가능성이 검증된 방식입니다.
- 네트워크 전송 없음: 생성된 비밀번호는 서버로 보내지지 않습니다. 페이지를 처음 열 때 코드를 내려받은 뒤로는, 비밀번호를 만드는 동안 어떤 데이터도 외부로 오가지 않습니다.
- 저장·기록 없음: 비밀번호는 화면에 표시될 뿐 데이터베이스나 로그에 남지 않습니다. 페이지를 새로고침하거나 닫으면 흔적 없이 사라집니다.
- 오프라인 확인 가능: 페이지가 로드된 뒤 인터넷 연결을 끊어도 생성 기능이 그대로 동작합니다. 이는 모든 계산이 로컬에서 이뤄진다는 방증입니다.
그래도 지켜야 할 습관
도구 자체는 안전하지만, 만든 비밀번호를 다루는 환경도 중요합니다. 공용 PC나 신뢰할 수 없는 기기에서는 사용을 피하고, 복사한 비밀번호는 사용 후 클립보드에서 지우세요. 화면 녹화·어깨너머 훔쳐보기(숄더 서핑)에도 주의하는 것이 좋습니다.
만든 비밀번호, 어떻게 관리할까
강한 비밀번호를 만들었어도 그것을 안전하게 보관하고 쓰지 않으면 소용이 없습니다. 길고 무작위한 비밀번호는 외우기 어렵기 때문에, 아래 방법으로 관리하는 것을 권장합니다.
- 비밀번호 관리자 사용: 브라우저 내장 관리자나 전용 앱(1Password, Bitwarden 등)에 저장하면, 사이트마다 서로 다른 긴 비밀번호를 외우지 않고도 자동 입력할 수 있습니다.
- 2단계 인증(2FA) 병행: 비밀번호가 유출되더라도 인증 앱·문자·보안키가 추가로 필요하도록 설정하면, 계정 탈취 위험을 크게 줄일 수 있습니다.
- 중요 계정 우선 강화: 이메일·금융·본인 인증 계정은 다른 계정 복구의 관문이 되므로, 가장 길고 강한 비밀번호와 2단계 인증을 우선 적용하세요.
- 유출 여부 점검: 사용 중인 이메일이나 비밀번호가 과거 유출 사고에 포함됐는지 확인해 주는 서비스로 주기적으로 점검하고, 걸리면 즉시 교체합니다.
- 정기 교체보다 유출 시 교체: 최근 보안 지침은 '주기적 강제 변경'보다 '유출이 의심될 때 즉시 변경'을 권장합니다. 불필요한 잦은 변경은 오히려 약한 비밀번호로 이어지기 쉽습니다.
자주 묻는 질문
- 생성한 비밀번호가 서버에 저장되나요?
- 아니요. 이 도구는 비밀번호를 여러분의 브라우저 안에서만 생성하며, 그 값을 서버로 전송하거나 저장하지 않습니다. 페이지 코드를 처음 내려받은 뒤에는 인터넷을 끊어도 생성이 동작할 만큼 모든 계산이 로컬에서 이뤄집니다. 화면에 뜬 비밀번호를 복사해 바로 사용해도 유출 걱정이 없습니다.
- 이 비밀번호는 정말 무작위인가요?
- 네. 브라우저 표준인 Web Crypto API의 crypto.getRandomValues를 사용합니다. 이는 운영체제의 암호학적 난수원에 기반한 방식으로, 게임 등에서 쓰는 일반 난수(Math.random)와 달리 결과를 예측하기 어렵도록 설계돼 비밀번호·암호키 생성에 적합합니다.
- 비밀번호 길이는 몇 자로 하는 게 좋나요?
- 일반적인 계정은 최소 12자, 가능하면 16자 이상을 권장합니다. 길이는 조합 수를 지수적으로 늘리기 때문에 강도에 가장 큰 영향을 줍니다. 이메일·금융처럼 중요한 계정이라면 20자 이상으로 만들고, 비밀번호 관리자에 저장해 두면 외울 필요 없이 안전하게 쓸 수 있습니다.
- 특수문자를 꼭 넣어야 하나요?
- 문자 종류를 늘리면 자릿수당 조합 수가 커져 도움이 되지만, 필수는 아닙니다. 특수문자를 못 넣게 하는 사이트도 있고, 이럴 때는 특수문자 옵션을 끄고 대신 길이를 늘리면 됩니다. 짧고 복잡한 비밀번호보다 길고 단순한 비밀번호가 대체로 더 안전합니다.
- 같은 비밀번호를 여러 사이트에 써도 되나요?
- 권장하지 않습니다. 한 사이트에서 비밀번호가 유출되면 공격자가 같은 값으로 다른 사이트 로그인을 시도하는 '크리덴셜 스터핑' 공격을 받을 수 있습니다. 사이트마다 서로 다른 비밀번호를 만들고, 비밀번호 관리자로 보관하는 것이 안전합니다.
- 만든 비밀번호를 잊어버리지 않으려면 어떻게 하나요?
- 길고 무작위한 비밀번호는 외우기 어려우므로 비밀번호 관리자(브라우저 내장 기능 또는 1Password·Bitwarden 같은 전용 앱)에 저장해 두는 것이 가장 실용적입니다. 종이에 적어 안전한 곳에 보관하는 것도 방법이지만, 여러 사람이 접근하는 공간이라면 피해야 합니다.
- 생성 버튼을 누를 때마다 결과가 왜 달라지나요?
- 매번 새로운 난수를 뽑기 때문입니다. 옵션(길이·문자 종류)이 같아도 무작위로 다른 문자가 선택되므로 결과가 달라집니다. 마음에 드는 비밀번호가 나올 때까지 다시 생성 버튼을 여러 번 눌러 여러 후보 중에서 고를 수 있습니다.