강력한 비밀번호 & 난수 생성기
영문 대소문자, 숫자, 특수문자 조합 및 보안 엔트로피 강도 측정 안전 패스워드 생성
지금 계산한 분들이 함께 많이 사용하는 도구
사용 방법 및 안내
강력한 비밀번호 & 난수 생성기는 비밀번호를 서버로 보내지 않습니다. 방문자의 브라우저에 있는 Web Cryptography API의 crypto.getRandomValues만 써서 난수를 뽑고, 결과는 이 탭의 메모리에만 남습니다. 복사하기 전까지 어디에도 저장되지 않고, 페이지를 닫으면 사라집니다.
화면에 보이는 엔트로피 비트는 추측 문구가 아닙니다. 길이 L과 지금 켜 둔 문자집합의 실제 크기 N으로 L × log2(N)을 반올림한 값입니다. 대문자 26, 소문자 26, 숫자 10, 특수문자 26을 모두 쓰면 N은 88입니다. 유사문자 제외를 켜면 I, O, l, 0, 1이 빠져 N이 줄어들고, 같은 16자리라도 비트 수가 내려갑니다. 기본 길이는 16자리이며, 네 종류를 모두 켠 상태에서 유사문자를 빼면 문자집합은 83종, 엔트로피는 약 102비트입니다.
난수 값을 문자집합 길이로 나눈 나머지만 쓰면, 집합 크기가 2의 거듭제곱이 아닐 때 앞쪽 글자가 아주 조금 더 자주 나오는 모듈로 편향이 생깁니다. 이 도구는 편향이 없는 구간만 채택하는 거절 샘플링으로 인덱스를 고릅니다. 또 체크한 종류마다 최소 한 글자를 넣고 나머지 자리를 전체 집합에서 채운 뒤, 같은 암호학적 난수로 자리를 섞어 특정 종류가 맨 앞에 고정되지 않게 합니다.
길이보다 재사용이 더 위험하다
- 16자리를 기본값으로 둡니다. 8자리 영숫자만 쓰면 오프라인 대입 공격에 시간이 얼마 걸리지 않습니다. 슬라이더의 기본 표시도 16자리에 맞춰 두었습니다.
- 유사문자를 빼면 읽기는 쉽고 비트는 줄어듭니다. 화면의 비트 수와 문자집합 종 수가 그 차이를 바로 보여 줍니다.
- 사이트마다 다른 비밀번호를 쓰세요. 비트 수가 높아도 유출된 사이트에서 같은 문자열을 다시 쓰면 엔트로피 계산과 상관없이 뚫립니다. 이 도구는 절대 해독 불가를 주장하지 않습니다.
자주 묻는 질문 (FAQ)
생성된 비밀번호가 서버나 데이터베이스에 저장되나요?
저장되지 않습니다. 문자열은 브라우저 메모리에서 crypto.getRandomValues로 만들어지며 서버로 전송되지 않습니다. 복사하지 않고 탭을 닫으면 결과도 함께 사라집니다.
화면에 보이는 엔트로피 비트는 어떻게 계산하나요?
엔트로피(비트) = 비밀번호 길이 × log2(실제 문자집합 크기)를 반올림한 값입니다. 유사문자 제외를 켜면 I, O, l, 0, 1이 빠져 집합이 작아지므로 같은 길이라도 비트가 내려갑니다. 대문자 26종을 고정으로 더하지 않고, 지금 체크된 집합의 글자 수를 그대로 씁니다.
Math.random() 대신 crypto.getRandomValues를 쓰는 이유는 무엇인가요?
Math.random()은 암호용이 아닙니다. 이 도구는 Web Crypto의 crypto.getRandomValues로 32비트 난수를 읽고, 집합 크기로 나눈 나머지가 한쪽으로 기울지 않도록 거절 샘플링을 한 뒤 글자를 고릅니다.
대문자·소문자·숫자·특수문자를 켰는데 한 종류가 빠질 수 있나요?
빠지지 않습니다. 선택한 종류마다 최소 한 글자를 먼저 넣고, 남은 자리는 전체 문자집합에서 채운 다음 순서를 난수로 섞습니다. 길이가 선택한 종류 수보다 짧으면 앞에서부터 그만큼만 보장합니다.
16자리면 충분한가요? 왜 슬라이더 기본이 8이 아닌가요?
이 도구의 기본 길이는 16자리입니다. 8자 영숫자는 오늘날 오프라인 대입 공격에 짧고, 16자에 여러 문자 종류를 섞으면 보통 80비트 이상이 됩니다. 슬라이더 눈금도 8자는 최소, 16자는 기본으로 표시합니다.