본문으로 건너뛰기
CalcMax

비밀번호 강도 계산기

범위: 1 – 128

계산 결과

95.3 bit강함

엔트로피

사용 문자 종류 수
62
문자당 엔트로피
5.95 bit
조합 수(10의 거듭제곱)
28

비밀번호 강도는 산수이고, 이 페이지는 어림하지 않고 그 산수를 합니다. 비밀번호 길이와 문자 종류를 고르면 그 선택이 만드는 문자 공간의 크기, 비트로 잰 엔트로피, 그리고 현대적인 그래픽 카드가 가능한 조합 수를 모두 시도하는 데 걸리는 시간을 보여 줍니다. 빠른 해시와 제대로 설정한 느린 해시 두 가지로 계산합니다. 그 두 해독 시간 사이의 간격이 이 페이지에서 가장 쓸모 있는 부분입니다. 유출된 MD5 데이터베이스 앞에서 3년 걸리는 같은 비밀번호가 bcrypt 앞에서는 수백만 년을 버팁니다. 길이도 나머지 절반입니다. 문자를 하나 더 넣으면 문자 공간의 크기만큼 작업량이 곱해지고, 길이를 고정한 채 문자 종류를 하나 더 넣으면 그 종류가 가진 문자 수만큼만 늘어납니다. 그래서 8자리에서 16자리로 늘리는 쪽이 보통 더 나은 거래입니다. 이 페이지는 비밀번호를 만들어 주지 않습니다. 무작위성의 출처가 필요한 일이고, 계산해서 화면에 숫자를 띄우는 페이지는 그 출처가 될 수 없기 때문입니다.

엔트로피 구간별 해독 시간

구간엔트로피조합 수10^10/s 기준 초10^4/s 기준 초
약함28-35비트8-24
보통36-59비트1006
강함60-127비트18814
매우 강함128비트 이상382834

마지막 두 열은 10의 거듭제곱으로 읽습니다. -2는 10^-2초, 3은 1,000초입니다. 오른쪽 열은 같은 공격자가 제대로 설정한 느린 해시를 상대할 때이고, 두 값이 백만 배 차이 나는 이유가 그것입니다. 엔트로피는 그 구간의 아래쪽 경계이므로, 이 표와 강도 배지는 언제나 같은 것을 가리킵니다. 조합 수는 10의 거듭제곱으로 내림해 표시하므로 실제보다 크게 적히지 않습니다.

공식

엔트로피(비트) = 비밀번호 길이 × log₂(문자 공간 크기). 조합 수 = 2^엔트로피

비밀번호 길이
비밀번호에 들어가는 문자의 개수
문자 공간 크기
고를 수 있는 문자의 가짓수입니다. 소문자 26개, 대문자 26개, 숫자 10개, 기호 32개이고, 넷을 다 켜면 94개입니다
log₂
밑이 2인 로그입니다. 결과가 비트로 세어지도록 쓰입니다

비밀번호 규칙을 정하기 전에 두 정책을 비교할 때, 또는 이미 쓰고 있는 비밀번호를 계속 쓸 만한지 확인할 때 씁니다. 알려진 문자 종류에서 무작위로 만든 비밀번호에는 정확한 값이고, 사람이 직접 만든 비밀번호에는 상한일 뿐입니다. 사람은 패턴을 고르기 때문에, 12자리 비밀번호라도 단어와 날짜와 키보드 모양으로 이루어져 있으면 여기 나온 값보다 훨씬 약합니다. 그래서 이 페이지가 재는 것은 비밀번호가 아니라 정책입니다. 길이를 하나 늘리는 것과 문자 종류를 하나 켜는 것 중 어느 쪽이 나은지 판단할 때 특히 유용합니다.

계산 예시

  1. 16자리, 문자와 숫자

    1. 문자 공간: 26 + 26 + 10 = 62개
    2. 문자당 엔트로피: log₂(62) = 5.95비트
    3. 전체 엔트로피: 16 × 5.95 = 95.3비트
    4. 조합 수: 10^28입니다. 도구는 29자리 숫자를 다 적는 대신 10의 거듭제곱으로 보고합니다

    95.3비트는 60비트 구간을 크게 넘어서 128비트에 배정된 최상위 구간에 들어갑니다. 기호를 켜면 94개가 되어 같은 16자리에서 105비트가 되지만, 길이를 20자리로 늘리는 쪽이 더 큰 차이를 만듭니다.

  2. 8자리, 소문자만

    1. 문자 공간: 26개
    2. 문자당 엔트로피: log₂(26) = 4.70비트
    3. 전체 엔트로피: 8 × 4.70 = 37.6비트
    4. 조합 수: 2^37.6은 약 2.1 × 10^11이므로 10^11로 표시됩니다

    37.6비트는 보통 구간에 들어갑니다. 그래픽 카드 한 장으로 빠른 해시를 돌리면 1초도 걸리지 않습니다. 길이를 16자리로 두 배로 늘리면 75.2비트가 되어 같은 문자 종류만으로도 강함 구간에 들어갑니다.

한계

엔트로피 값은 비밀번호가 고른 문자 종류에서 균등하고 무작위로 만들어졌다고 가정합니다. 사람이 직접 고른 비밀번호는 그보다 적고, 대개 훨씬 적습니다. 사람은 단어와 날짜와 키보드 모양으로 손이 가고, 해독 도구는 그런 것을 먼저 시도하기 때문입니다. 그래서 이 페이지는 비밀번호가 아니라 정책을 잽니다. 해독 시간은 그래픽 카드 한 장을 기준으로 한 자릿수 어림값이고, 특정 기계를 측정한 값이 아닙니다. 클러스터를 가진 공격자나 더 새로운 카드는 이 값보다 훨씬 빠릅니다. 훔쳐 간 해시 데이터베이스는 공격자가 원하는 만큼 오래 붙들고 있을 수 있습니다. 비밀번호를 재사용했는지, 피싱에 넘겼는지, 키로거에 걸렸는지는 여기 들어 있지 않습니다. 60비트를 넘겼는데도 계정이 털렸다면 무차별 대입이 아니라 그쪽 경로를 의심하시기 바랍니다. 마지막으로 이 페이지는 비밀번호를 만들어 주지 않습니다. 화면에 숫자를 띄우는 스크립트는 그 숫자를 만드는 데 쓴 난수도 함께 갖고 있고, 그 난수가 곧 비밀번호를 아는 사람이 됩니다.

자주 묻는 질문

비밀번호 엔트로피는 어떻게 계산하나요?
엔트로피는 비밀번호 길이에 문자 공간 크기의 밑이 2인 로그를 곱한 값입니다. 소문자, 대문자, 숫자를 모두 켜면 문자 종류가 62개이고 문자당 5.95비트이므로, 16자리면 95.3비트입니다. 구간 경계는 28, 36, 60, 128비트이고, 이 페이지의 배지와 표가 같은 값을 씁니다.
60비트면 충분한가요, 그리고 해독 시간은 어떻게 읽나요?
전적으로 사이트가 비밀번호를 어떻게 보관하는지에 달렸습니다. 초당 10^10회 시도하는 그래픽 카드 한 장이 소금 없는 빠른 해시를 상대로 돌면 60비트는 몇 년이 걸리고, 제대로 설정한 느린 해시를 상대로는 초당 10^4회로 떨어져 사실상 손이 닿지 않습니다. 두 값이 백만 배 차이 나는 이유가 그것입니다.
기호와 대소문자를 섞는 것과 그냥 길게 만드는 것 중 어느 쪽이 나은가요?
길게 만드는 쪽이 대개 더 나은 거래이고, 외우기도 쉽습니다. 8자리 소문자에서 16자리 소문자로 가면 37.6비트가 75.2비트가 됩니다. 같은 8자리에서 대문자와 숫자와 기호를 모두 켜도 52.4비트에 그칩니다. 길이는 문자 공간 전체에 곱해지고, 문자 종류는 로그로만 늘어나기 때문입니다.
왜 이 페이지는 비밀번호를 만들어 주지 않나요?
비밀번호는 그 뒤에 있는 무작위성의 출처만큼만 예측 불가능하기 때문입니다. 계산해서 화면에 숫자를 띄우는 페이지는 그 난수를 함께 갖고 있고, 그 순간 비밀번호를 아는 사람이 하나 늘어납니다. 비밀번호는 기기 안에서 만들어야 하고, 사이트가 대신 만들어 주는 경우에도 서버가 아니라 브라우저에서 만들어지는지 확인하시기 바랍니다.
비밀번호가 길면 항상 더 강한가요?
무작위로 만들었을 때만 그렇습니다. 산수가 보상하는 것은 길이이고, 그래서 네 단어로 만든 암호문이 짧은 복잡한 비밀번호를 이길 수 있습니다. 반대로 사람이 고른 문장은 단어 사이에 규칙이 있어서 길이만큼의 엔트로피가 나오지 않습니다. 이 페이지의 값은 그런 비밀번호에 대해 상한으로 읽으셔야 합니다.

참고 문헌

관련 계산기