안전한 랜덤 비밀번호를 만드는 원리
비밀번호의 안전성은 길이, 사용할 수 있는 문자 수, 그리고 선택 과정의 예측 가능성에 크게 좌우됩니다. 이 도구는 사람이 떠올리기 쉬운 단어나 생일 조합 대신 브라우저의 Web Crypto 기능이 제공하는 암호학적으로 강한 난수를 사용합니다. 선택한 문자 종류가 결과에 최소 한 번씩 포함되도록 각 집합에서 먼저 한 글자씩 뽑고, 나머지 자리를 전체 문자 집합에서 채운 다음 전체 순서를 다시 섞습니다. 따라서 모든 위치를 아무 조건 없이 독립 추출하는 방식과는 출력 분포가 다릅니다.
난수 바이트를 문자 집합의 길이로 단순히 나머지 계산하면 특정 문자가 조금 더 자주 선택되는 모듈로 편향이 생길 수 있습니다. 생성기는 256을 문자 집합 크기로 나눈 유효 범위 밖의 난수는 버리고 다시 뽑는 거부 샘플링을 사용해 각 문자가 가능한 한 균등하게 선택되도록 합니다. 예상 엔트로피는 비밀번호 길이와 문자 풀의 크기를 이용한 이론값으로 표시하며, 실제 계정 보안은 사이트의 저장 방식, 로그인 시도 제한과 다중 인증 사용 여부에도 영향을 받습니다.
‘헷갈리는 문자 제외’를 선택하면 I와 소문자 l, 숫자 1, 대문자 O와 숫자 0처럼 화면이나 종이에서 구분하기 어려운 문자를 제거합니다. 직접 타이핑해야 하는 공유기나 장비 비밀번호에 유용하지만 문자 풀이 조금 줄어들므로 충분한 길이를 유지하는 것이 좋습니다. 일부 웹사이트는 허용하는 특수문자가 제한되어 있으므로 가입 화면의 규칙을 확인하고 필요한 문자 종류만 선택하세요. 사이트가 허용한다면 짧고 복잡한 암호보다 길고 무작위인 암호가 일반적으로 추측하기 어렵습니다.
생성된 비밀번호는 서버로 전송하지 않고 localStorage에도 저장하지 않습니다. 복사 버튼을 누르면 시스템 클립보드에 들어가므로 공유 기기에서는 붙여넣은 뒤 클립보드 기록과 화면을 정리하세요. 도구의 공유 버튼은 비밀번호 자체가 아니라 이 페이지 주소만 전달합니다. 같은 비밀번호를 여러 서비스에서 재사용하지 말고 계정마다 새로 생성해 신뢰할 수 있는 비밀번호 관리자에 저장하며, 중요한 계정에는 다중 인증을 함께 설정하는 것이 좋습니다.
구체적인 상황으로 이해하는 활용 예시
다음 세 상황은 도구의 처리 과정과 결과 해석을 설명하기 위한 가상 예시입니다. 입력 조건을 바꾸면 결과도 달라지므로 자신의 조건과 비교해 확인하세요.
1. 대소문자와 숫자로 20자 생성
헷갈리는 문자 제외를 끄고 소문자 26개·대문자 26개·숫자 10개를 선택하면 문자 풀은 62개입니다. 길이 20의 표시용 엔트로피 추정은 20 × log₂(62), 약 119.1비트이며 화면에는 반올림한 119비트가 표시됩니다. 각 종류가 최소 한 번 포함되도록 강제하는 조건 때문에 이 값은 정확한 출력 분포의 엔트로피가 아니며 해독 시간을 보장하지 않습니다.
2. 소문자만 24자 생성
특수문자와 대문자·숫자를 끄고 제외 옵션도 끄면 문자 풀은 26개입니다. 길이 24에서는 표시용 추정값이 24 × log₂(26), 약 112.8비트이며 화면에는 113비트가 표시됩니다. 문자열 자체는 실행할 때마다 달라집니다. 입력 대상이 요구하는 종류 조건을 만족하는지는 별도 확인해야 하며 이 예시를 모든 계정에 맞는 설정으로 해석하지 마세요.
3. 같은 문자 풀에서 길이만 늘리는 경우
62개 문자 풀을 유지하고 길이를 12에서 20으로 늘리면 표시용 추정은 약 71.5비트에서 119.1비트로 바뀌며 화면의 정수 표시는 각각 71비트와 119비트입니다. 길이의 영향을 비교하는 예시이지 계정 탈취 위험이 그 비율만큼 줄어든다는 뜻은 아닙니다. 생성한 실제 값을 예시 문장처럼 공개하거나 여러 사이트에서 재사용하지 말고 복사할 때도 주변 화면 노출을 확인하세요.