강력한 무작위 비밀번호가 만들어지는 원리
이 도구가 하는 일
이 도구는 켜 둔 문자 종류——대문자, 소문자, 숫자, 기호——를 조합해 4자에서 128자 사이의 원하는 길이로 무작위 비밀번호를 만듭니다. 각 문자는 급조된 스크립트가 흔히 쓰는 예측 가능한 Math.random이 아니라, 브라우저에 내장된 암호학적으로 안전한 난수원 crypto.getRandomValues에서 뽑아내며, 켜 둔 문자 종류는 반드시 한 번 이상 들어갑니다. 강도 표시기가 엔트로피(비트 수)를 바탕으로 결과마다 약함, 보통, 강함으로 평가하고, 복사한 비밀번호는 짧은 목록에 남아 어느 것을 쓸지 고르는 동안 다시 꺼내 볼 수 있습니다.
언제 사용하나요
계정, 데이터베이스, API 키, Wi-Fi 네트워크처럼 사람이 스스로는 결코 떠올리지 않을 자격 증명이 필요할 때마다 쓰기 좋습니다. 생성된 문자열에는 사전 단어도, 키보드 배열 패턴도, 개인 정보도 들어 있지 않은데, 바로 이 점이 추측 공격과 무차별 대입 공격을 막아 줍니다. '기호 하나 이상을 포함한 16자 이상'처럼 사이트가 구체적인 정책을 요구할 때도, 복사하기 전에 길이와 문자 집합을 그에 맞게 조정할 수 있어 편리합니다. 그 자격 증명을 HTTP Basic 인증 헤더로 보내야 한다면 Base64 인코더가 헤더가 요구하는 문자열을 그대로 만들어 줍니다.
구체적인 예시
어떤 서비스가 기호를 포함해 20자를 요구한다고 해 봅시다. 길이를 20으로 맞추고 네 가지 문자 종류를 모두 켜 두면 곧바로 k7$Rf2!qXm9@Lp4#Vn8w 같은 새 비밀번호가 나타납니다. 손으로 입력하거나 소리 내어 읽을 생각이라면 '유사 문자 제외'를 켜서 소문자 l, 숫자 1, 대문자 O, 숫자 0처럼 헷갈리는 문자가 나오지 않게 하고, '애매한 문자 제외'로 일부 입력란이 잘 처리하지 못하는 괄호와 따옴표를 빼세요.
참고 사항과 엣지 케이스
길이는 그 어떤 잔재주보다 중요합니다. 문자가 하나 늘어날 때마다 가능한 조합의 수가 폭증하기 때문에, 작은 문자 집합으로 만든 긴 비밀번호가 기호로 가득 채운 짧은 것을 앞서는 경우가 많습니다. 문자 종류를 하나 끄면 그 후보군이 줄고, 모두 끄면 만들 재료가 하나도 남지 않으므로 최소한 한 종류는 선택된 상태로 두어야 합니다. 끝으로 진짜 약점은 재사용입니다. 비밀번호의 안전성은 그것이 지키는 단 하나의 사이트만큼밖에 되지 않으니, 같은 강력한 문자열을 여기저기 돌려 쓰지 말고 계정마다 새롭고 고유한 것을 생성하세요. 평문을 남기지 않고 비밀번호를 기록하거나 대조해야 한다면 해시 생성기에 통과시켜 SHA-256 지문만 보관하면 됩니다.