비밀번호 생성기
강력한 랜덤 비밀번호 또는 외우기 쉬운 단어 패스프레이즈를 브라우저에서 생성합니다. 무료, 아무것도 전송하지 않음.
🔒 브라우저의 암호학적 난수 생성기로 로컬에서 생성되며 어디에도 전송되지 않습니다.
브라우저에서 안전한 비밀번호·패스프레이즈 생성
비밀번호 모드에서는 길이와 문자 종류(소문자·대문자·숫자·기호)를 고르고, 손으로 입력할 때 헷갈리는 문자(I, l, 1, O, 0)를 제외할 수 있습니다. 패스프레이즈 모드에서는 무작위 단어를 원하는 구분자로 이어 외우고 입력하기 쉬운 문구를 만듭니다. 둘 다 브라우저의 암호학적 난수 생성기를 쓰고, 실시간 강도 표시로 엔트로피(비트)를 보여줍니다. 서버로 전송되는 것은 전혀 없습니다.
길이가 기교를 이깁니다, 그리고 그걸 말하는 숫자
엔트로피는 길이 × log₂(문자 풀 크기)이고, 옵션을 바꾸면 비트로 표시됩니다. 이 산술은 쓸모 있게
가차없습니다. 12자리에 기호를 더하면 풀이 62에서 87로 늘어 약 6비트를 얻지만, 대신 16자리로 늘리면 24비트를
얻습니다. 문자 치환은 안 하느니만 못합니다. P@ssw0rd!는 사전 단어에 예측 가능한 치환 네 번을 한
것이고 모든 크래킹 도구가 그것부터 시도하므로, 길이가 시사하는 것보다 오히려 약합니다. 여기 구간은
40·70·110비트입니다. 40 아래는 마음먹은 사람이면 맞힐 수 있고, 110 위는 예측 가능한 어떤 하드웨어로도 전수
탐색이 불가능합니다.
무작위는 어디서 오고, 비밀번호는 어디로 가야 하나
문자는 브라우저의 암호학적 난수원에서 뽑습니다. 빠르지만 자기 출력에서 예측 가능한 Math.random은
이 용도에 맞지 않아 쓰지 않습니다. 서버에서 만들지 않고 어디로도 보내지 않습니다. 제외 옵션은 미신이 아니라
실제 이유가 있습니다. 헷갈리는 글자(Il1O0o|`)는 화면에서 읽어 손으로 옮겨 칠 때 문제가 되고,
문장부호는 그 비밀번호가 언젠가 셸이나 CSV, 따옴표에 예민한 옛 폼을 통과해야 할 때 빼는 편이 낫습니다.
외워야 하는 비밀번호라면 생성기가 애초에 맞는 도구가 아닙니다. 관리자를 쓰고, 유일하게 외우는 하나는 짧은
뒤죽박죽이 아니라 긴 암호구절로 만드세요.
자주 묻는 질문
정말 무작위이고 안전한가요?
네. 편향을 없애는 rejection sampling과 함께 브라우저의 Web Crypto API(crypto.getRandomValues)로 기기에서 직접 생성합니다.
패스프레이즈 모드가 뭔가요?
무작위 단어 여러 개를 이어 기호 나열보다 외우고 입력하기 쉬운 문구를 만들되 강도는 유지합니다. 단어를 늘리면 엔트로피가 커집니다.
비밀번호가 어디로 전송되나요?
아니요. 브라우저에서만 생성되며 기기를 벗어나지 않습니다.
몇 자리가 적당한가요?
중요한 것이라면 70비트를 넘길 만큼입니다. 혼합 풀에서 12자리쯤, 문자만이면 16자리쯤입니다. 다른 비밀번호를 지키는 비밀번호라면 110을 넘기세요.
기호를 넣는 게 자릿수를 늘리는 것보다 나은가요?
아닙니다. 12자리에서 16자리로 늘리면 12자리에 기호를 더할 때의 약 네 배 엔트로피를 얻습니다. 기호도 도움이 되지만 길이가 훨씬 크고, 입력하기도 쉽습니다.
헷갈리는 글자를 왜 빼나요?
I·l·1·O·0과 세로줄은 많은 글꼴에서 구분이 어렵습니다. 화면에서 읽어 손으로 치거나 불러 줘야 할 비밀번호라면, 엔트로피를 조금 내주고 로그인 실패를 크게 줄이는 거래입니다.