사용 방법
- 위에서 비밀번호, UUID, 랜덤 문자열 중 하나를 고릅니다.
- 길이와 포함할 문자를 정합니다. 옵션을 바꾸면 바로 새 값이 만들어집니다.
- 마음에 들지 않으면 ‘다시 만들기’를 누르고, 필요한 값 옆의 복사 버튼을 누릅니다.
계산 기준과 공식
모든 값은 브라우저에 내장된 crypto.getRandomValues로 만듭니다. 운영체제의 보안 난수를 쓰기 때문에 결과를 예측할 수 없고, 흔히 쓰는 Math.random과 달리 비밀번호 생성에 적합합니다.
난수를 문자 수로 나눈 나머지를 그냥 쓰면 앞쪽 문자가 조금 더 자주 나오는 편향이 생깁니다. 여기서는 편향이 생기는 구간의 난수를 버리고 다시 뽑는 거부 샘플링으로 모든 문자가 정확히 같은 확률로 나오게 합니다. 비밀번호는 고른 문자 종류가 하나씩은 꼭 들어가도록 만든 뒤 순서를 섞습니다.
엔트로피(비트) = 길이 × log₂(쓸 수 있는 문자 수)40비트 미만은 약함, 60비트 미만은 보통, 90비트 미만은 강함, 그 이상은 매우 강함으로 표시합니다.
예시
영문 대소문자 + 숫자 8자리
62종 문자로 8자리를 만들면 약 47비트입니다. 요즘 그래픽카드로 오프라인 대입 공격을 하면 몇 시간 안에 뚫릴 수 있는 수준이라 중요한 계정에는 짧습니다.
특수문자 포함 16자리, 헷갈리는 문자 제외
82종 문자로 16자리를 만들면 101비트입니다. 현재 기술로 무작위 대입해 맞추는 것은 사실상 불가능합니다. 비밀번호 관리자에 저장해 두고 쓰는 용도로 적당합니다.
결과를 읽는 법
비밀번호 강도는 길이가 가장 크게 좌우합니다. 특수문자를 넣는 것보다 4자리를 더 늘리는 쪽이 대부분 더 강해집니다.
엔트로피는 ‘완전히 무작위로 만들었을 때’의 값입니다. 사람이 직접 생각한 비밀번호는 패턴이 있어서 같은 길이라도 훨씬 약합니다.
자주 묻는 질문
여기서 만든 비밀번호를 그대로 써도 안전한가요?
값은 내 브라우저 안에서만 만들어지고 서버로 전송되거나 저장되지 않습니다. 다만 화면 공유나 클립보드 기록에 남을 수 있으니, 복사한 뒤에는 비밀번호 관리자에 바로 저장하세요.
UUID v4가 겹칠 수 있나요?
이론상 가능하지만 확률이 매우 낮습니다. 무작위 비트가 122개라서 10억 개를 만들어도 그중 하나라도 겹칠 확률은 10의 19제곱 분의 1 정도입니다. 데이터베이스 기본키나 파일 이름으로 써도 실무에서 문제가 되지 않습니다.
헷갈리는 문자 빼기는 언제 쓰나요?
비밀번호를 종이에 적거나 다른 사람에게 불러줘야 할 때 씁니다. 0과 O, 1과 l, I를 빼면 잘못 읽을 일이 줄어듭니다. 문자 수가 조금 줄어 엔트로피가 약간 낮아지므로 길이를 한두 자 늘리면 됩니다.
사이트에서 특수문자를 거부해요.
일부 사이트는 허용하는 특수문자가 정해져 있습니다. 특수문자를 끄고 길이를 20자 이상으로 늘리면 특수문자를 넣은 16자보다 강한 비밀번호가 됩니다.
결과가 이상하거나 있었으면 하는 기능이 있나요? 오류 제보 · 의견 보내기