본문 바로가기
Localtools

비밀번호 생성기

강력한 랜덤 비밀번호나 패스프레이즈를 브라우저에서 만듭니다. 만든 비밀번호는 어디에도 전송되거나 저장되지 않습니다.

생성된 비밀번호

    강도
    매우 강함
    엔트로피
    104비트
    모든 조합을 시도하는 데 걸리는 시간
    10억 년 이상

    유출된 비밀번호 해시에 초당 100억 번을 시도하는 오프라인 공격을 가정한 추정치입니다. 실제 공격은 더 느릴 수도 빠를 수도 있으며, 재사용하거나 유출된 비밀번호는 길이와 상관없이 바로 뚫립니다.

    세부 설정
    사용할 문자
    옵션
    만들 개수

    비밀번호는 사용 중인 브라우저 안에서 만들어집니다. 어디에도 전송되지 않고, 이 브라우저에도 저장되지 않습니다.

    사용 방법

    1. 무작위 문자열을 원하면 '비밀번호'를, 무작위 단어 조합을 원하면 '패스프레이즈'를 고르세요.
    2. 비밀번호는 슬라이더나 숫자 칸으로 길이를 정하고, 가입할 사이트에서 허용하는 문자 종류에 체크하세요.
    3. 한 번에 만들 개수를 1, 5, 10 중에서 고르세요.
    4. 마음에 드는 비밀번호 옆의 '복사'를 눌러 가입 화면이나 비밀번호 관리자에 붙여 넣으세요.
    5. '새로 만들기'를 누르면 다시 만들어집니다. 설정을 바꿀 때도 새 비밀번호가 바로 나옵니다.

    비밀번호는 브라우저 안에서만 만들어집니다

    이 비밀번호 생성기는 모든 처리를 이 기기 안에서 합니다. 페이지를 처음 받았을 때의 HTML에는 비밀번호가 들어 있지 않고, 도구가 브라우저에서 실행된 뒤에야 첫 비밀번호를 만듭니다. 각 글자는 브라우저의 암호용 난수 생성기(crypto.getRandomValues)로 고릅니다. 일반 프로그램에서 흔히 쓰는 Math.random보다 예측하기 어렵고, 암호 키를 만들 때 쓰는 것과 같은 방식입니다.

    만든 비밀번호는 페이지 메모리에만 있습니다. 서버 전송, 로그 기록, 로컬 스토리지 저장, 주소창 기록은 전혀 하지 않습니다. 새로 고침하거나 탭을 닫으면 사라지므로, 쓸 비밀번호는 꼭 비밀번호 관리자 등에 저장하세요.

    한 글자씩, 치우침 없이 고르는 방법

    난수를 ’90가지 문자 중 하나’로 바꿀 때 흔히 쓰는 ‘90으로 나눈 나머지’ 방식은 일부 문자가 아주 조금 더 자주 나오게 만듭니다. 이 도구는 치우침을 만드는 난수를 버리고 다시 뽑는 ’기각 샘플링’을 써서, 후보에 있는 모든 문자가 정확히 같은 확률로 뽑히게 합니다.

    ’고른 종류마다 최소 1자 넣기’를 켜면, 먼저 체크한 종류(대문자·숫자·특수문자 등)에서 한 글자씩 뽑고 나머지 길이를 전체 후보에서 채운 다음, 피셔–예이츠 방식으로 전체 순서를 섞습니다. 필수 문자가 맨 앞에 몰리지 않으므로 ‘대문자로 시작해서 특수문자로 끝나는’ 것처럼 공격자가 먼저 시도하는 패턴이 생기지 않습니다. 국내 사이트에서 흔히 요구하는 ‘영문 대소문자, 숫자, 특수문자 조합 8자 이상’ 같은 조건도 한 번에 통과합니다.

    엔트로피, 쉽게 말하면

    엔트로피는 공격자가 시도해야 하는 경우의 수를 ’2의 몇 제곱’으로 나타낸 값입니다. 1비트가 늘 때마다 무차별 대입에 드는 시간은 두 배가 됩니다.

    • 비밀번호: 길이 × log2(쓸 수 있는 문자 수). 네 종류를 모두 쓰면 90자이므로 한 글자당 약 6.5비트, 기본값 16자는 약 104비트입니다.
    • 패스프레이즈: 단어 수 × log2(단어 목록 크기). 목록이 976개이므로 한 단어당 약 9.9비트, 5단어면 약 50비트입니다. ’숫자 넣기’를 켜면 몇 비트가 더해집니다.

    강도는 40비트 미만이면 ‘약함’, 4059는 ‘보통’, 6079는 ‘강함’, 80 이상은 ’매우 강함’으로 표시합니다. ’모든 조합을 시도하는 데 걸리는 시간’은 유출된 비밀번호 데이터베이스에 초당 100억 번을 시도할 때의 시간이며, 평균적으로는 그 절반 안에 찾아냅니다. 이 숫자는 여기서 만든 것처럼 무작위로 생성한 비밀번호에만 해당합니다. 이름과 생일을 섞는 식으로 직접 지은 비밀번호는 길이에 비해 훨씬 약합니다.

    생성기보다 중요한 비밀번호 습관

    • 사이트마다 다른 비밀번호: 계정 탈취의 상당수는 한 곳에서 유출된 아이디와 비밀번호를 다른 사이트에 대입하는 ’크리덴셜 스터핑’입니다. 사이트마다 무작위 비밀번호를 쓰면 이 공격이 통하지 않습니다.
    • 비밀번호 관리자 사용: 수십 개의 무작위 비밀번호를 외울 수는 없습니다. 관리자에 암호화해 저장하고 자동 입력하면, 강한 마스터 비밀번호 하나만 기억하면 됩니다.
    • 직접 입력하는 곳에는 패스프레이즈: 마스터 비밀번호나 컴퓨터 로그인처럼 매번 손으로 치는 비밀번호는 7단어 이상의 패스프레이즈가 입력하기 편하면서도 충분히 강합니다.
    • 2단계 인증(2FA) 켜기: 인증 앱이나 보안 키를 쓰면 비밀번호가 새어 나가도 계정을 지킬 수 있습니다.

    공정하게 번호를 뽑거나 팀을 나눌 때는 같은 치우침 없는 방식을 쓰는 랜덤 뽑기·팀 나누기를, 글자 수 제한이 있는 칸에 붙여 넣기 전에 길이를 확인하려면 글자수 세기를 써 보세요.

    자주 묻는 질문

    이 비밀번호 생성기는 안전한가요?

    비밀번호는 브라우저에 내장된 암호용 난수 생성기(crypto.getRandomValues)로 이 기기 안에서 만들어집니다. 서버로 보내지 않고, 쿠키·로컬 스토리지·기록 어디에도 남기지 않습니다. 탭을 닫으면 사라집니다.

    비밀번호는 몇 자리가 적당한가요?

    대문자·소문자·숫자·특수문자를 모두 쓰면 16자에 약 104비트로, 현실적인 무차별 대입 공격으로는 뚫기 어렵습니다. 중요하지 않은 사이트라도 12자 이상, 비밀번호 관리자의 마스터 비밀번호는 20자 이상이나 패스프레이즈를 권합니다.

    특수문자를 못 쓰는 사이트는 어떻게 하나요?

    '특수문자' 체크를 해제하세요. 한 글자당 강도가 조금 낮아지므로 길이를 두세 자 늘리면 비슷한 강도가 됩니다. 일부 특수문자만 허용한다면 '특수문자 직접 지정' 칸에 그 문자(예: !@#)만 입력하면 됩니다.

    헷갈리는 문자 빼기는 무엇인가요?

    대문자 I(아이), 소문자 l(엘), 숫자 1, 대문자 O(오), 숫자 0은 종이에 옮겨 적거나 다른 화면을 보고 입력할 때 혼동하기 쉽습니다. 이 옵션을 켜면 이 다섯 글자를 쓰지 않습니다. 쓸 수 있는 문자가 줄어드는 만큼 표시되는 비트 수도 조금 낮아집니다.

    패스프레이즈가 비밀번호보다 나은가요?

    무작위 단어를 이은 패스프레이즈(예: river-cold-number-paper-table)는 외우고 입력하기 쉬워서 마스터 비밀번호나 컴퓨터 로그인에 잘 맞습니다. 다만 이 도구의 단어 목록은 976개라 한 단어가 약 9.9비트이므로, 중요한 곳에는 7단어 이상을 쓰세요.

    왜 한국어 단어가 아니라 영어 단어인가요?

    비밀번호 칸은 대부분 영문·숫자·특수문자만 받습니다. 한글 단어를 영문 자판으로 치는 방식은 사람마다 습관이 달라 실수하기 쉽습니다. 누구나 같은 철자로 입력할 수 있는 영어 단어를 쓰면 이런 문제가 없습니다.

    해독 시간은 정확한가요?

    대략적인 추정치입니다. 공격자가 비밀번호 해시를 손에 넣고 초당 100억 번을 시도하는, 꽤 빠른 조건으로 계산했습니다. bcrypt 같은 느린 해시로 보호되면 훨씬 오래 걸리고, 다른 곳에서 유출되었거나 재사용한 비밀번호는 길이와 상관없이 가장 먼저 시도됩니다.

    관련 도구