강력한 비밀번호 생성기

브라우저에서 직접 강력하고 무작위적인 비밀번호를 생성하세요. 문자 유형을 완벽하게 제어할 수 있으며, 생성된 결과는 기기 외부로 유출되지 않습니다.

생성을 눌러 추첨하세요
고급 옵션
사용자 지정 문자를 사용하려면 위의 줄을 편집하세요. 각 줄은 별도의 문자 유형으로 처리됩니다.

강력하고 고유한 비밀번호는 온라인 계정을 지키는 가장 경제적인 방어 수단입니다. 하지만 정작 필요한 순간은 회사 업무용 계정을 새로 만들 때, 인터넷 뱅킹에서 비밀번호 변경을 강제할 때, 새로 구입한 공유기를 설정할 때, 또는 마침내 비밀번호 관리자(password manager)로 전환할 때처럼 갑작스럽게 찾아옵니다. 이 강력한 무료 비밀번호 생성기를 사용하면 클릭 한 번으로 완전히 무작위적인 비밀번호를 만들 수 있습니다. "길이"를 필요한 만큼 설정하고, 포함할 문자 유형(대소문자, 숫자, 기본 기호(%$#@!?&), 복잡한 기호(.,;[]()^-_=+{}:<>|))을 선택한 후 "결과 생성" 버튼을 누르기만 하면 됩니다.

이 생성기는 보안을 최우선으로 고려하여 설계되었습니다. 따라서 TLS 및 기타 중요한 보안 작업에서 의존하는 것과 동일한, 암호학적으로 안전한 시스템 수준의 난수에서 값을 추출하는 Web Crypto API(crypto.getRandomValues)를 기반으로 구축되었습니다. Math.random()이나 예측 가능한 유사 난수 함수를 사용하는 생성기와 달리, 공격자가 이전 결과를 보더라도 다음 결과를 전혀 유추할 수 없도록 만들어졌습니다. 또한 모든 생성 과정은 사용자의 기기 내에서만 이루어집니다. 비밀번호는 서버로 전송되지 않고, 로그에 남지 않으며, 개발자인 저희도 볼 수 없습니다. 즉, 중간에 가로챌 데이터도, 저희가 보관하는 데이터도 전혀 존재하지 않습니다.

다양한 옵션을 통해 어떤 사이트의 비밀번호 정책이든 쉽게 맞출 수 있습니다. 생성된 모든 비밀번호는 사용자가 선택한 각 문자 유형을 최소 한 개 이상 반드시 포함하도록 보장합니다. 따라서 "대문자와 숫자를 반드시 포함할 것"과 같은 요구 사항이 자동으로 충족됩니다. 또한 "각 문자 유형의 개수를 거의 동일하게 유지" 옵션이 기본으로 켜져 있어, 특정 문자 유형 하나에만 결과가 편중되는 것을 막아줍니다. 최고 수준의 강도를 원한다면 기호를 켜고, 이를 허용하지 않는 구형 시스템이라면 기호를 끕니다. "혼동하기 쉬운 문자 제외" 기능을 켜면 사람이 육안으로 읽을 때 헷갈리기 쉬운 문자들(Il1O0o)을 제거할 수 있습니다.

비밀번호가 여러 개 필요하거나 사이트의 요구 조건이 특이한가요? "생성 개수"를 설정하면 팀 계정을 만들 때처럼 최대 100개의 비밀번호 목록을 한 번에 생성할 수 있습니다. 개수가 1보다 클 경우, "결과 형식"을 통해 비밀번호를 "줄바꿈", "공백으로 구분", 또는 "쉼표로 구분" 중 어떤 방식으로 나열할지 결정합니다. 그 외의 세부적인 설정은 모두 "고급 옵션" 아래에 있습니다. 동일한 문자가 두 번 이상 나타나도 괜찮다면 "하나의 비밀번호에서 중복 문자 제외"를 끄십시오. 한편, 이 도구는 한국어 고유 문자를 지원하지 않지만, 우크라이나어, 그리스어, 세르비아어부터 폴란드어, 튀르키예어, 베트남어에 이르기까지 다른 35개 언어의 문자를 포함할 수 있습니다. 비밀번호를 완벽하게 제어하고 싶거나 자신만의 문자를 추가하고 싶다면, "문자 집합 (줄당 하나)"을 이용해 직접 집합을 정의할 수 있습니다. 입력한 각 줄은 생성기가 문자를 추출하는 독립적인 문자 유형으로 취급됩니다.

이 비밀번호 생성기를 선택해야 하는 이유

난수는 어떻게 만들어질까요? 여러분의 운영체제는 하드웨어 이벤트에서 발생하는 예측할 수 없는 노이즈(엔트로피)를 지속적으로 수집하여 암호학적으로 안전한 난수 생성기에 공급합니다. 사용자가 결과 생성을 누르면, 이 페이지의 JavaScript가 crypto.getRandomValues를 통해 브라우저에 무작위 값을 요청합니다. 그리고 그 값을 사용자가 선택한 문자 유형에 매핑하고, 모든 유형이 누락 없이 포함되었는지 확인한 뒤 비밀번호를 조립합니다. 이 과정에는 추측 가능한 '시드(seed)'도 없고, 비밀번호 해독 전용 하드웨어가 뚫고 들어올 수 있는 알고리즘상의 지름길도 존재하지 않습니다. 또한 어떠한 단계에서도 네트워크 요청이 발생하지 않으며, 전체 과정이 전적으로 사용자의 기기에서만 실행됩니다.

생성된 결과 아래에는 비밀번호의 강도를 나타내는 척도인 비트 단위의 예측 불가능성(엔트로피) 추정치가 표시됩니다. 대략 60비트 이상이면 일상적인 계정에 적합하고, 80비트 이상이면 강력하며, 100비트 이상이면 최신 하드웨어를 동원한 무차별 대입(brute force) 공격으로도 사실상 해독이 불가능합니다. 무엇보다도 다음 두 가지 습관이 가장 중요합니다. 첫째, 복잡함보다 '길이'가 우선입니다. 중요한 계정일수록 16자 이상을 사용하세요. 다른 기호 유형을 추가하는 것보다 길이를 단 한 글자 늘리는 쪽이 공격자의 해독 작업량을 훨씬 더 빠르게 배가시킵니다. 둘째, '고유성'입니다. 한 웹사이트에서 데이터 유출(data breach)이 발생하면, 유출된 로그인 정보는 즉시 다른 서비스에 대입해 보는 크리덴셜 스터핑(credential stuffing) 공격에 악용됩니다. 따라서 비밀번호 하나를 재사용하는 것만으로 하나의 유출 사고가 전체 계정 탈취로 이어질 수 있습니다. 모든 계정에 각각 고유한 비밀번호를 만들어 비밀번호 관리자에 보관하고, 지원되는 곳이라면 반드시 2단계 인증(2FA)을 활성화하십시오. 이러한 보안 수칙은 KISA가 권장하는 지침과도 일치합니다. 마지막으로, 완전히 무작위로 생성된 비밀번호에 반복되는 문자나 읽을 수 있는 짧은 단어 조각이 포함되어 있다고 해서 놀라지 마십시오. 진정한 난수에서는 이러한 연속적인 패턴이 흔하게 발생하며, 이것이 비밀번호를 결코 약하게 만들지 않습니다.

FAQ

온라인에서 비밀번호를 생성하는 것이 안전한가요?

이 도구를 사용하신다면 안전합니다. 비밀번호는 Web Crypto API를 사용하여 브라우저 내부에서 완전히 생성되며 어딘가로 전송되지 않습니다. 생성 중에는 서버 요청이 전혀 이루어지지 않으므로, 저희나 네트워크 경로 상의 그 누구도 데이터를 가로채거나 저장할 수 없습니다.

비밀번호 길이는 어느 정도가 적당한가요?

최소 12자를 사용하시고, 중요한 계정에는 16자 이상을 권장합니다. 문자 종류의 복잡함보다는 긴 길이가 훨씬 낫습니다. 한 글자가 추가될 때마다 공격자가 시도해야 하는 조합의 수는 기하급수적으로 늘어납니다.

무작위로 생성된 비밀번호가 제가 직접 만든 것보다 정말로 더 나은가요?

네, 그렇습니다. 사람이 만든 비밀번호는 사전 속 단어, 이름, 생년월일, 또는 qwerty123 같은 키보드 배열 등 예측하기 쉬운 패턴을 따르는 경향이 있으며, 해킹 도구는 바로 그러한 패턴부터 먼저 시도합니다. 반면 무작위로 생성된 비밀번호에는 그런 구조가 전혀 없으므로 공격자는 무차별 대입 공격에 의존할 수밖에 없는데, 16자의 무작위 비밀번호라면 이는 사실상 불가능합니다.

결과 아래에 표시되는 엔트로피 비트란 무슨 뜻인가요?

엔트로피는 비밀번호가 얼마나 예측하기 어려운지를 나타내는 지표입니다. 대략적으로, 일상적인 계정의 경우 60비트 이상이면 합리적이고, 80비트 이상이면 강력하며, 100비트 이상이면 현재의 하드웨어를 이용한 무차별 대입 공격 범위를 벗어납니다.

"혼동하기 쉬운 문자 제외" 옵션은 어떤 기능인가요?

서로 헷갈리기 쉬운 문자들, 즉 대문자 I, 소문자 l, 숫자 1, 대문자 O, 숫자 0, 소문자 o를 결과에서 제거합니다. 비밀번호를 소리 내어 읽어야 하거나, 종이에 인쇄하거나, 적어둔 것을 보고 직접 타이핑해야 할 때 유용합니다.

제가 원하는 문자들만으로 완전히 맞춤화된 비밀번호를 만들 수 있나요?

네, 가능합니다. "고급 옵션"을 열고 "문자 집합 (줄당 하나)"을 사용하여 자신만의 문자 집합을 정의하세요. 입력한 각 줄이 별도의 문자 유형으로 취급되므로, 그룹별로 특정 문자를 반드시 포함하도록 강제할 수 있습니다. 이는 사이트의 특이한 비밀번호 요구 사항을 충족하는 데 안성맞춤입니다.

제 모국어의 고유 문자를 포함할 수 있나요?

이 생성기는 35개 언어를 지원하지만 한국어 문자는 포함되어 있지 않습니다. 키릴 문자, 그리스 문자, 아르메니아 문자 같은 비라틴 문자나 폴란드어, 덴마크어처럼 특수한 라틴 문자를 섞어 쓰려면, "고급 옵션"에 있는 "문자 집합 (줄당 하나)"을 사용하여 해당 문자를 직접 추가하시면 됩니다.

왜 생성된 모든 비밀번호에 숫자와 대문자가 무조건 하나씩 포함되나요?

이 생성기는 사용자가 선택한 각 문자 유형에서 적어도 하나의 문자가 무조건 포함되도록 보장합니다. 따라서 "대문자와 숫자를 하나씩 포함할 것"과 같은 일반적인 사이트의 요구 조건을 항상 자동으로 충족시킵니다. 특정 유형을 완전히 배제하고 싶다면 해당 문자 유형의 체크를 해제하면 됩니다.

비밀번호 대신 패스프레이즈(passphrase)를 사용하는 것이 좋을까요?

패스프레이즈(다이스웨어(diceware) 방식처럼 무작위 단어 몇 개를 나열한 것)는 비밀번호 관리자의 마스터 비밀번호처럼 직접 기억하거나 손으로 타이핑해야 하는 비밀정보에 아주 적합합니다. 그러나 관리자 프로그램 내부에 저장해 두는 나머지 계정들의 경우에는 16자 이상의 무작위 비밀번호가 패스프레이즈만큼이나 강력합니다. 관리자의 마스터 비밀번호로는 강력한 패스프레이즈를 사용하고, 그 외의 다른 모든 계정에는 무작위 비밀번호를 사용하는 식으로 병행하시기 바랍니다.

비밀번호는 얼마나 자주 변경해야 합니까?

최신의 보안 가이드라인에서는 더 이상 정기적인 비밀번호 변경을 권장하지 않습니다. 강제적인 주기적 변경은 오히려 사용자가 예측하기 쉽고 약한 비밀번호로 돌려쓰게 만드는 부작용을 낳기 때문입니다. 해당 서비스에서 데이터 유출 사고가 발생했거나, 피싱이 의심되거나, 누군가와 계정을 공유한 적이 있는 등 명확한 이유가 있을 때만 변경하십시오. 가장 중요한 핵심은 모든 계정마다 서로 다른 길고 무작위적인 비밀번호를 갖는 것입니다.

제가 생성한 비밀번호를 저장하거나 들여다보나요?

아니요. 비밀번호 생성 과정은 전적으로 기기 내부에서 로컬로 실행되며 그 결과는 브라우저 외부로 절대 빠져나가지 않습니다. 저희에게는 사용자의 비밀번호를 확인하거나, 로그에 기록하거나, 보관할 수 있는 기술적 수단 자체가 존재하지 않습니다.