당신의 의심은 옳으니 버리지 마십시오. 비밀번호를 만드는 페이지야말로 그것을 기억해서는 안 되는 바로 그 페이지입니다. 좋은 소식은 이것이 확인 가능하다는 점입니다 — 난수는 당신의 기계에서 만들어지고, 전송은 눈에 보이며, 만든 것을 갖고 있는 생성기는 현행범으로 잡을 수 있습니다.
# 온라인 비밀번호 생성기를 써도 안전할까?
당신의 의심은 옳으니 버리지 마십시오. 비밀번호를 만드는 페이지야말로 그것을 기억해서는 안 되는 바로 그 페이지입니다. 좋은 소식은 이것이 확인 가능하다는 점입니다 — 난수는 당신의 기계에서 만들어지고, 전송은 눈에 보이며, 만든 것을 갖고 있는 생성기는 현행범으로 잡을 수 있습니다.
마지막 업데이트 2026년 8월 26일
## 짧은 답
이 질문 뒤에 있는 의심은 정확히 옳은 의심이니, 간직하십시오. 비밀번호를 만드는 페이지는 받을 민감한 것은 하나도 없으면서 *가질* 민감한 것은 전부인, 웹에서 유일한 페이지입니다. 그 출력물이 곧 비밀이고, 만든 것을 전송하는 생성기는 약한 도구가 아니라 비밀번호 수집소일 것입니다. 질문은 생성기 페이지가 믿음직해 보이느냐가 결코 아닙니다. 마음만 먹으면 비밀번호를 가질 수 *있느냐*입니다 — 그리고 그것은, 드물게도, 확인할 수 있습니다.
세 가지가 결정합니다. 난수가 어디서 오는가, 결과물이 페이지를 떠날 수 있는가, 결과물의 무엇이라도 예측 가능한가. 셋 다 방문자가 직접 검증할 수 있는 정직한 답을 갖고 있습니다 — 아무도 들여다볼 수 없는 창 안에서 생성하는 다운로드 앱에 대해 말할 수 있는 것보다 많습니다.
## 브라우저 난수는 어디서 오는가
브라우저 안의 진지한 생성기는 모두 한 우물에서 퍼 올립니다. `crypto.getRandomValues` — 브라우저의 암호학적 난수 생성기로, 운영 체제가 하드웨어 잡음에서 씨를 뿌리고 계속 다시 뿌립니다. 브라우저가 TLS 키를 퍼 올리는 바로 그 원천입니다 — 당신의 은행 접속이 달리는 그 암호화 말입니다. 데스크톱 프로그램이 웹페이지보다 나은 난수에 접근한다는 말이 성립할 쓸모 있는 의미는 존재하지 않습니다. 둘 다 같은 운영 체제의 우물에서 끝납니다.
페이지가 쓰면 *안 되는* 것은 `Math.random()`, 주사위나 굴리는 일용 함수입니다. 브라우저들은 이것을 빠른 생성기로 구현하는데, 그 내부 상태는 연속된 출력 몇 개만 보면 재구성할 수 있습니다 — 그 위에 지은 비밀번호는 무작위처럼 보이지만, 하나라도 본 사람이라면 계산할 수 있다는 뜻입니다. 이건 이론이 아닙니다. 실제 배포된 생성기들을 상대로 한 번 이상 실증됐습니다. 게다가 밖에서는 보이지 않는데, 그것이 코드를 읽을 수 있는 생성기를 미는 가장 강한 논거입니다. 두 함수의 차이는 소스의 한 단어니까요.
그 너머에 더 섬세한 단계의 조심성이 있습니다. 무작위 32비트 단어에서 단순 나머지로 “26 미만의 수”를 만들면 앞쪽 글자들 쪽으로 아주 살짝 기웁니다. 꼼꼼한 생성기는 나머지를 취하는 대신 다시 뽑습니다. [여기의 생성기](https://abox.tools/ko/비밀번호-생성기/)가 그렇게 합니다 — 피해 가는 치우침은 약 1억 6500만분의 1로, 쓰는 동안엔 보이지 않지만, 일을 위해 지어진 도구와 게시판에서 붙여 온 코드 조각을 가르는 것이 바로 이런 종류의 세부입니다.
## 나쁜 생성기 페이지가 할 수 있는 일
실패의 형태를 똑바로 이름 붙여 둡니다. 하나하나 확인할 수 있기 때문입니다.
- **비밀번호를 내보내기.** 페이지가 로컬에서 만들고, 만든 것을 전송합니다 — 클릭과 함께, 분석 도구에 실어, 혹은 나중에 몰아서. 이것이 실격 사유이고, 보입니다. 네트워크 요청일 수밖에 없고, 요청은 지켜볼 수 있으니까요.
- **서버에서 만들기.** 비밀번호가 네트워크로 나가는 대신 네트워크를 타고 도착합니다 — 운영자가 먼저 본 것이고, 어떻게 만들어졌는지에 대해 당신은 아무것도 배우지 못합니다. 같은 검사, 반대 방향.
- **약하게 만들기.** `Math.random`, 시각을 씨앗으로 쓰기, 몇백 단어짜리 목록을 강하다고 팔기. 이건 어느 네트워크 탭도 잡지 못합니다. 읽을 수 있는 소스만이 잡습니다. 아니면 실제 설정에서 세어 보여 주는 정직한 강도 표시가.
- **이력을 갖기.** 친절하게도 최근 비밀번호 스무 개를 기억해 두기 — 탭보다 오래 사는 저장소에, 어쩌면 공용일 기계 위에서.
이 사이트의 [비밀번호·패스프레이즈 생성기](https://abox.tools/ko/비밀번호-생성기/)는 네 가지 모두에 대해 구조적으로 지어져 있습니다. `crypto.getRandomValues`뿐, 생성은 페이지 안에서, 어떤 종류의 저장도 없고, 이력도 없으며, 당신의 설정으로 몇 가지 결과가 가능했는지 정확히 세어 알려 주는 강도 줄이 있습니다. 패스프레이즈용 단어 목록은 EFF의 다이스웨어 목록으로, 도구 자신의 폴더에 무수정으로 실려 있습니다.
## 어느 생성기든 검사하는 법, 이것 포함
방법 전문은 [업로드 가이드](https://abox.tools/ko/가이드/파일-업로드-안전한가/)에 있고, 무엇보다 먼저 적용해 볼 페이지가 바로 이 페이지입니다.
- **먼저 플러그를 뽑으십시오.** 페이지를 열고, 오프라인으로 간 *다음* 생성하십시오. 연결 없이 만들어진 비밀번호는 밖에서 가져와졌을 리 없고, 만들어진 순간에 보내졌을 리도 없습니다. 이 페이지는 오프라인에서도 계속 돌아갑니다. 그것이 존재 이유입니다.
- **생성하면서 네트워크 탭을 보십시오.** 버튼을 누르고 목록을 읽으십시오. 아무것도 떠나면 안 됩니다. 그다음 비밀번호를 복사하고, 다시 보십시오 — 복사야말로 정직하지 못한 페이지가 고를 순간입니다.
- **수집소가 필요로 할 것을 찾으십시오.** 계정, 동기화 기능, “최근 생성됨” 목록. 기억을 가진 생성기는 사본을 갖고 있습니다.
정직한 단서 하나가 끝자리에 어울립니다. 검사는 당신이 보는 동안 페이지가 무엇을 했는지 말해 줍니다. 공개되어 있고 읽을 수 있는 형태로 제공되는 코드는 — 이 사이트의 전부가 그렇듯 — 페이지가 일반적으로 무엇을 하는지 말해 줍니다. 남는 것은 기계 자체입니다. 어떤 웹페이지도 장악된 브라우저나 키 입력을 훔치는 악성코드로부터 비밀번호를 지켜 줄 수 없고, 생성기도 예외가 아닙니다. 검사가 사 주는 것은 더 작고, 진짜입니다 — 어느 서버도 본 적 없는 비밀번호, 읽어 보도록 허락된 산수가 만든 비밀번호.
짧은 답
이 질문 뒤에 있는 의심은 정확히 옳은 의심이니, 간직하십시오. 비밀번호를 만드는 페이지는 받을 민감한 것은 하나도 없으면서 가질 민감한 것은 전부인, 웹에서 유일한 페이지입니다. 그 출력물이 곧 비밀이고, 만든 것을 전송하는 생성기는 약한 도구가 아니라 비밀번호 수집소일 것입니다. 질문은 생성기 페이지가 믿음직해 보이느냐가 결코 아닙니다. 마음만 먹으면 비밀번호를 가질 수 있느냐입니다 — 그리고 그것은, 드물게도, 확인할 수 있습니다.
세 가지가 결정합니다. 난수가 어디서 오는가, 결과물이 페이지를 떠날 수 있는가, 결과물의 무엇이라도 예측 가능한가. 셋 다 방문자가 직접 검증할 수 있는 정직한 답을 갖고 있습니다 — 아무도 들여다볼 수 없는 창 안에서 생성하는 다운로드 앱에 대해 말할 수 있는 것보다 많습니다.
브라우저 난수는 어디서 오는가
브라우저 안의 진지한 생성기는 모두 한 우물에서 퍼 올립니다. crypto.getRandomValues — 브라우저의 암호학적 난수 생성기로, 운영 체제가 하드웨어 잡음에서 씨를 뿌리고 계속 다시 뿌립니다. 브라우저가 TLS 키를 퍼 올리는 바로 그 원천입니다 — 당신의 은행 접속이 달리는 그 암호화 말입니다. 데스크톱 프로그램이 웹페이지보다 나은 난수에 접근한다는 말이 성립할 쓸모 있는 의미는 존재하지 않습니다. 둘 다 같은 운영 체제의 우물에서 끝납니다.
페이지가 쓰면 안 되는 것은 Math.random(), 주사위나 굴리는 일용 함수입니다. 브라우저들은 이것을 빠른 생성기로 구현하는데, 그 내부 상태는 연속된 출력 몇 개만 보면 재구성할 수 있습니다 — 그 위에 지은 비밀번호는 무작위처럼 보이지만, 하나라도 본 사람이라면 계산할 수 있다는 뜻입니다. 이건 이론이 아닙니다. 실제 배포된 생성기들을 상대로 한 번 이상 실증됐습니다. 게다가 밖에서는 보이지 않는데, 그것이 코드를 읽을 수 있는 생성기를 미는 가장 강한 논거입니다. 두 함수의 차이는 소스의 한 단어니까요.
그 너머에 더 섬세한 단계의 조심성이 있습니다. 무작위 32비트 단어에서 단순 나머지로 “26 미만의 수”를 만들면 앞쪽 글자들 쪽으로 아주 살짝 기웁니다. 꼼꼼한 생성기는 나머지를 취하는 대신 다시 뽑습니다. 여기의 생성기가 그렇게 합니다 — 피해 가는 치우침은 약 1억 6500만분의 1로, 쓰는 동안엔 보이지 않지만, 일을 위해 지어진 도구와 게시판에서 붙여 온 코드 조각을 가르는 것이 바로 이런 종류의 세부입니다.
나쁜 생성기 페이지가 할 수 있는 일
실패의 형태를 똑바로 이름 붙여 둡니다. 하나하나 확인할 수 있기 때문입니다.
비밀번호를 내보내기. 페이지가 로컬에서 만들고, 만든 것을 전송합니다 — 클릭과 함께, 분석 도구에 실어, 혹은 나중에 몰아서. 이것이 실격 사유이고, 보입니다. 네트워크 요청일 수밖에 없고, 요청은 지켜볼 수 있으니까요.
서버에서 만들기. 비밀번호가 네트워크로 나가는 대신 네트워크를 타고 도착합니다 — 운영자가 먼저 본 것이고, 어떻게 만들어졌는지에 대해 당신은 아무것도 배우지 못합니다. 같은 검사, 반대 방향.
약하게 만들기.Math.random, 시각을 씨앗으로 쓰기, 몇백 단어짜리 목록을 강하다고 팔기. 이건 어느 네트워크 탭도 잡지 못합니다. 읽을 수 있는 소스만이 잡습니다. 아니면 실제 설정에서 세어 보여 주는 정직한 강도 표시가.
이력을 갖기. 친절하게도 최근 비밀번호 스무 개를 기억해 두기 — 탭보다 오래 사는 저장소에, 어쩌면 공용일 기계 위에서.
이 사이트의 비밀번호·패스프레이즈 생성기는 네 가지 모두에 대해 구조적으로 지어져 있습니다. crypto.getRandomValues뿐, 생성은 페이지 안에서, 어떤 종류의 저장도 없고, 이력도 없으며, 당신의 설정으로 몇 가지 결과가 가능했는지 정확히 세어 알려 주는 강도 줄이 있습니다. 패스프레이즈용 단어 목록은 EFF의 다이스웨어 목록으로, 도구 자신의 폴더에 무수정으로 실려 있습니다.
어느 생성기든 검사하는 법, 이것 포함
방법 전문은 업로드 가이드에 있고, 무엇보다 먼저 적용해 볼 페이지가 바로 이 페이지입니다.
먼저 플러그를 뽑으십시오. 페이지를 열고, 오프라인으로 간 다음 생성하십시오. 연결 없이 만들어진 비밀번호는 밖에서 가져와졌을 리 없고, 만들어진 순간에 보내졌을 리도 없습니다. 이 페이지는 오프라인에서도 계속 돌아갑니다. 그것이 존재 이유입니다.
생성하면서 네트워크 탭을 보십시오. 버튼을 누르고 목록을 읽으십시오. 아무것도 떠나면 안 됩니다. 그다음 비밀번호를 복사하고, 다시 보십시오 — 복사야말로 정직하지 못한 페이지가 고를 순간입니다.
수집소가 필요로 할 것을 찾으십시오. 계정, 동기화 기능, “최근 생성됨” 목록. 기억을 가진 생성기는 사본을 갖고 있습니다.
정직한 단서 하나가 끝자리에 어울립니다. 검사는 당신이 보는 동안 페이지가 무엇을 했는지 말해 줍니다. 공개되어 있고 읽을 수 있는 형태로 제공되는 코드는 — 이 사이트의 전부가 그렇듯 — 페이지가 일반적으로 무엇을 하는지 말해 줍니다. 남는 것은 기계 자체입니다. 어떤 웹페이지도 장악된 브라우저나 키 입력을 훔치는 악성코드로부터 비밀번호를 지켜 줄 수 없고, 생성기도 예외가 아닙니다. 검사가 사 주는 것은 더 작고, 진짜입니다 — 어느 서버도 본 적 없는 비밀번호, 읽어 보도록 허락된 산수가 만든 비밀번호.