도구
가이드

비밀번호 생성기

암호

crypto.getRandomValues로 암호학적으로 안전한 무작위 비밀번호를 생성합니다.

100% 클라이언트 백엔드 없음
이 페이지에서

비밀번호 생성기란?#

비밀번호 생성기는 진짜 무작위의 원천을 자격 증명으로 쓸 수 있는 문자열로 바꿉니다. 요점은 단순히 “길게 만드는 것”이 아닙니다. 문자 풀에서 균일하게 뽑아내어, 고른 길이의 가능한 모든 비밀번호가 똑같이 일어나도록 하는 것입니다. 이 균일성이 여러분이 강도를 수학적으로 따질 수 있게 합니다. 93개 문자 위의 16글자 비밀번호는 약 105비트의 엔트로피를 가집니다. 끝. 착취할 인간 편향이 없습니다.

이 페이지는 브라우저의 암호학적으로 강력한 무작위 원천인 crypto.getRandomValues 를 쓰고, 기각 샘플링 으로 추출합니다. 그 디테일이 중요합니다. randomByte % poolSize 라는 단순한 지름길은 풀 크기가 256을 균등하게 나누지 않을 때 모듈로 편향을 끌어들입니다. 기각 샘플링은 편향된 남은 몫을 버리므로, 어색한 93문자 풀을 포함한 어떤 풀에서도 추출이 편향되지 않습니다.

결과 아래의 강도 표시기는 length × log2(poolSize) — 섀논 엔트로피 — 로 정직하게 계산되며, 약함 / 보통 / 양호 / 강함 버킷으로 나뉩니다. 여러분이 실제로 고른 풀을 반영하지, 추측이 아닙니다.

사용 방법#

  1. 길이 를 설정하세요. 기본값 16은 범용으로 좋은 길이입니다. 필드는 최대 4096까지 받습니다.
  2. 포함할 문자 클래스에 체크하세요. a-z, A-Z, 0-9, !@#. 소문자, 대문자, 숫자는 기본적으로 켜져 있고, 기호는 일부 로그인 폼이 이를 거부해서 꺼져 있습니다.
  3. 원한다면 비슷한 문자 제외 에 체크하여 시각적으로 헷갈리기 쉬운 문자(i l 1 L o 0 O 와 따옴표 비슷한 기호 몇 개)를 빼세요. 비밀번호를 소리 내어 읽거나 손으로 타이핑할 때 유용합니다.
  4. 생성 을 누르고, 복사 하세요. 상태 줄은 엔트로피를 비트 단위로, 그리고 고른 풀과 길이에서 도출한 강도 라벨을 보고합니다.

주요 기능#

  • 편향 없는 무작위. crypto.getRandomValues 위에서 기각 샘플링을 하므로, 크기가 2의 거듭제곱이 아닌 풀에서도 모듈로 편향이 없습니다.
  • 정직한 강도계. 엔트로피는 문자를 눈짐작하는 게 아니라 실제 풀 크기와 길이에서 계산됩니다. 약함 / 보통 / 양호 / 강함 버킷은 고정된 비트 역값(28 / 60 / 100)에 대응합니다.
  • 비슷한 문자 제외 모드. 사람이 옮겨 적어야 하는 비밀번호를 위해 가장 오독되기 쉬운 문자를 걷어냅니다.
  • 최대 4096까지 조정 가능. 16글자 로그인 비밀번호든 64글자 API 키든 같은 생성기가 처리합니다.
  • 업로드 없음. 생성은 전적으로 로컬이며, 비밀번호는 결코 네트워크로 전송되지 않습니다.

실전 예시#

길이 16, 네 클래스 모두 켬(소문자 + 대문자 + 숫자 + 기호), 비슷한 문자 제외 끔이면 풀은 93문자입니다(26 + 26 + 10 + 31). 엔트로피는 따라서 16 × log2(93) ≈ 16 × 6.54 ≈ 105 비트 이며 강함 대역(≥ 100비트)에 들어갑니다. 생성된 결과는 이런 모양입니다.

qM8#fT2$vRkL9@hZ

비슷한 문자 제외 를 켜면 풀은 85로 줄고(헷갈리는 문자 8개 제거), 16 × log2(85) ≈ 103 비트 가 됩니다. 여전히 강함이지만 이제 전화로 읽어도 안전합니다.

비교해 보세요. 길이 12, 소문자 + 숫자만(풀 36)으로 떨어뜨리면 엔트로피는 12 × log2(36) ≈ 62 비트 로, 양호 까지만 갑니다. 105비트에서 62비트로의 이 하락은 반올림 오차가 아닙니다. 무차별 대입이 대략 2^43배 빨라지는 셈이며, 이것이야말로 문자 풀과 길이가 둘 다 중요한 이유입니다.

FAQ#

”충분히 길다”는 어느 정도인가요?#

요청 빈도가 제한된 서비스 뒤의 로그인 비밀번호라면, 넓은 풀에서 12–16글자가 편안합니다. API 키처럼, 온라인 빈도 제한 보호 없이 관리자에 보관하는 비밀번호라면 25글자 이상을 목표로 하세요. 강도계가 비트로 진실을 알려줍니다. 100비트 이상이면 오늘날 하드웨어에서 오프라인 무차별 대입에 대해 강하다고 여겨집니다.

같은 설정이 매번 다른 비밀번호를 만드는 이유는?#

밑바탕의 무작위 바이트가 매 클릭마다 새롭기 때문입니다. 그것이 요점입니다. 출력이 예측 가능했다면 공격자도 예측할 수 있었을 것입니다. 설계상 고정할 수 있는 시드는 없습니다.

기호를 포함해야 하나요?#

목적지 시스템이 거부하지 않는다면 포함하세요. 기호는 풀을 넓혀(기본 세트에서 62에서 93문자로) 글자당 엔트로피를 직접적으로 높입니다. 기호를 빼는 흔한 이유는 보안상의 트레이드오프가 아니라, 로그인 폼이 특정 문장 부호를 금지하기 때문입니다.

생성된 비밀번호가 제가 직접 정하는 것보다 안전한가요?#

거의 항상 그렇습니다. 인간은 무작위를 끔찍하게 다룹니다. 흔한 단어, 반복되는 패턴, 사전이 노리는 키보드 워크에 몰립니다. 정의된 풀에서 균일하게 뽑는 생성기는 그런 습관이 없으므로, 16글자 생성 비밀번호는 영리해 보이는 12글자 인간형 비밀번호보다 확실하게 강합니다.