비밀번호 생성기
길이와 문자 종류를 조절해 안전한 무작위 비밀번호를 브라우저에서 바로 만듭니다.
무작위 비밀번호는 어떻게 만들어지나요?
이 도구는 브라우저에 내장된 암호학적 난수 생성기인 Web Crypto API(crypto.getRandomValues)를 사용합니다. 흔히 쓰는 Math.random은 속도는 빠르지만 내부 값이 예측 가능해서 보안 용도로는 부적합합니다. 반면 crypto.getRandomValues는 운영체제 수준의 엔트로피를 끌어와 다음 글자를 통계적으로 추측할 수 없게 만듭니다. 길이(4~64자)와 대문자·소문자·숫자·기호 포함 여부를 고르면, 선택한 종류가 각각 최소 한 개 이상 들어가도록 조합한 뒤 나머지 자리를 무작위로 채웁니다.
길이와 문자 종류가 왜 그렇게 중요한가요
비밀번호의 강도는 흔히 엔트로피(경우의 수)로 이야기합니다. 문자 후보가 많고 길이가 길수록 공격자가 시도해야 할 조합의 수가 기하급수적으로 늘어납니다. 핵심은 특수문자를 억지로 섞는 것보다 길이를 늘리는 편이 훨씬 효과적이라는 점입니다.
- 소문자만 8자: 후보 26종에 8제곱이라 조합이 약 2조 개. 현대 장비로는 순식간에 뚫립니다.
- 소문자+숫자+대문자 8자: 후보가 62종으로 늘어 조합이 약 218조 개. 그래도 짧아서 안전하지 않습니다.
- 네 종류 모두 포함 12자: 후보 약 94종에 12제곱이라 조합이 수백 자릿수로 폭증합니다. 이 정도부터 무차별 대입이 현실적으로 어려워집니다.
- 네 종류 모두 포함 16자 이상: 은행·이메일 같은 핵심 계정 권장 수준. 길이 1자를 늘리는 것이 기호 몇 개 추가보다 강도에 더 크게 기여합니다.
이런 상황에서 써보세요
- 새 계정 가입: 사이트마다 완전히 다른 강력한 비밀번호가 필요할 때 즉시 만듭니다. 재사용을 끊는 가장 쉬운 방법입니다.
- 유출 대응: 특정 서비스 유출 소식을 들었을 때, 같은 비밀번호를 쓰던 다른 계정까지 새 값으로 한 번에 교체합니다.
- 공용 기기 임시 계정: 카페·도서관 PC에서 잠깐 쓸 계정을 만들 때 기억하기 쉬운 약한 값 대신 강한 무작위 값을 씁니다.
- 개발·테스트용 문자열: API 키 후보, 일회용 토큰, 더미 데이터처럼 사람이 지어내면 편향이 생기는 무작위 문자열이 필요할 때 활용합니다.
자주 하는 실수와 오해
- 규칙만 지키면 안전하다는 오해: 'Password1!'처럼 대소문자·숫자·기호를 넣어도 흔한 단어 기반이라 사전 공격에 금방 뚫립니다. 강도는 규칙 충족이 아니라 실제 예측 불가능성에서 나옵니다.
- 기호를 많이 넣을수록 좋다는 오해: 기호를 몇 개 더 넣는 것보다 길이를 2~4자 늘리는 편이 조합 수 증가에 훨씬 유리합니다.
- 치환 규칙이 안전하다는 착각: 'a를 @로, o를 0으로' 같은 뻔한 치환은 공격 도구가 이미 자동으로 시도합니다. 의미 있는 단어를 바꾸는 것으로는 부족합니다.
- 한 번 만든 강한 비밀번호를 여러 사이트에 재사용: 아무리 강해도 한 곳이 유출되면 나머지가 전부 위험해집니다. 강도보다 사이트별로 다르게 쓰는 것이 먼저입니다.
- 생성값을 채팅·메모·이메일에 평문으로 남기기: 만든 순간 안전해도 기록이 남으면 그 경로로 새어 나갈 수 있습니다.
어떻게 기억하고 보관하나요
무작위 비밀번호의 유일한 단점은 외우기 어렵다는 점입니다. 현실적인 해법은 전부 외우려 하지 말고 비밀번호 관리자를 쓰는 것입니다. 관리자에 강한 마스터 비밀번호 하나만 기억하고, 사이트별 값은 관리자가 자동으로 채우게 하면 재사용과 유출 확산을 동시에 막을 수 있습니다. 관리자를 쓰지 않는다면, 자주 쓰는 몇 개는 여러 단어를 붙인 긴 패스프레이즈(예: 무관한 단어 4개 조합)로 만들어 손으로도 외울 수 있게 하고, 나머지 덜 중요한 계정만 이 도구로 만든 무작위 값을 씁니다.
주의사항과 한계
- 이 도구는 강한 값을 만들어 줄 뿐, 보관과 관리는 사용자의 몫입니다. 만든 뒤 안전하게 옮겨 저장하세요.
- 비밀번호가 강해도 피싱 사이트에 직접 입력하면 소용없습니다. 주소창의 도메인을 항상 확인하세요.
- 가능하다면 비밀번호에만 의존하지 말고 2단계 인증(OTP·보안키)을 함께 켜세요. 비밀번호가 유출돼도 추가 방어선이 됩니다.
- 일부 사이트는 특정 기호를 허용하지 않거나 최대 길이를 제한합니다. 오류가 나면 기호를 끄거나 길이를 줄여 다시 만드세요.
- 브라우저에서만 처리되므로 만든 값을 복사해 두지 않고 페이지를 새로고침하면 그 비밀번호는 완전히 사라집니다.
비밀번호는 브라우저의 암호학적 난수 생성기(Web Crypto)로 만들어지며 서버로 전송하거나 저장하지 않습니다. 어디에도 기록되지 않으니 안심하고 사용하세요.
개인정보처리방침 보기 →자주 묻는 질문
생성된 비밀번호가 서버로 전송되나요?
아니요. 비밀번호는 전적으로 사용자의 브라우저 안에서 암호학적 난수로 만들어지며, 서버로 전송하거나 저장하지 않습니다. 네트워크가 끊긴 상태에서도 동작하고, 페이지를 새로고침하면 화면의 값은 흔적 없이 사라집니다.
몇 자로 만드는 게 좋나요?
일반적인 계정은 12자 이상, 이메일·은행·클라우드처럼 중요한 계정은 16자 이상을 권장합니다. 대문자·소문자·숫자·기호를 모두 포함하되, 무엇보다 길이를 확보하는 것이 핵심입니다. 길이 한 자를 늘리는 것이 기호 몇 개를 추가하는 것보다 강도에 크게 기여합니다.
정말 예측 불가능한 무작위인가요?
네. 예측 가능한 Math.random이 아니라 브라우저의 암호학적 난수 생성기(Web Crypto API)를 사용합니다. 또한 특정 글자가 더 자주 나오지 않도록 편향 없이 고르게 뽑도록 구현해, 다음 글자를 통계적으로 추측할 수 없습니다.
이렇게 만든 비밀번호를 어떻게 외우나요?
무작위 값은 사람이 외우기 어렵기 때문에 전부 암기하려 하지 말고 비밀번호 관리자에 맡기는 것을 권합니다. 마스터 비밀번호 하나만 기억하면 나머지는 관리자가 자동으로 채워 줍니다. 관리자를 쓰기 어렵다면 중요한 몇 개만 무관한 단어를 여러 개 이은 긴 패스프레이즈로 만들어 외우세요.
특수문자를 넣었더니 사이트에서 오류가 나요.
일부 서비스는 허용하는 기호 종류를 제한하거나 특정 문자를 막아 둡니다. 이럴 때는 기호 옵션을 끄고 대신 길이를 늘려 다시 만들어 보세요. 길이만 충분히 확보해도 충분히 강한 비밀번호가 됩니다.
강한 비밀번호 하나를 여러 사이트에 써도 되나요?
권하지 않습니다. 아무리 강한 비밀번호라도 한 사이트가 유출되면 같은 값을 쓴 다른 계정이 모두 위험해집니다. 강도보다 먼저 지켜야 할 원칙은 사이트마다 서로 다른 비밀번호를 쓰는 것이며, 가능하면 2단계 인증도 함께 켜세요.