# 온라인 비밀번호 생성기를 써도 안전할까?

당신의 의심은 옳으니 버리지 마십시오. 비밀번호를 만드는 페이지야말로 그것을 기억해서는 안 되는 바로 그 페이지입니다. 좋은 소식은 이것이 확인 가능하다는 점입니다 — 난수는 당신의 기계에서 만들어지고, 전송은 눈에 보이며, 만든 것을 갖고 있는 생성기는 현행범으로 잡을 수 있습니다.

마지막 업데이트 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/가이드/파일-업로드-안전한가/)에 있고, 무엇보다 먼저 적용해 볼 페이지가 바로 이 페이지입니다.

- **먼저 플러그를 뽑으십시오.** 페이지를 열고, 오프라인으로 간 *다음* 생성하십시오. 연결 없이 만들어진 비밀번호는 밖에서 가져와졌을 리 없고, 만들어진 순간에 보내졌을 리도 없습니다. 이 페이지는 오프라인에서도 계속 돌아갑니다. 그것이 존재 이유입니다.
- **생성하면서 네트워크 탭을 보십시오.** 버튼을 누르고 목록을 읽으십시오. 아무것도 떠나면 안 됩니다. 그다음 비밀번호를 복사하고, 다시 보십시오 — 복사야말로 정직하지 못한 페이지가 고를 순간입니다.
- **수집소가 필요로 할 것을 찾으십시오.** 계정, 동기화 기능, “최근 생성됨” 목록. 기억을 가진 생성기는 사본을 갖고 있습니다.

정직한 단서 하나가 끝자리에 어울립니다. 검사는 당신이 보는 동안 페이지가 무엇을 했는지 말해 줍니다. 공개되어 있고 읽을 수 있는 형태로 제공되는 코드는 — 이 사이트의 전부가 그렇듯 — 페이지가 일반적으로 무엇을 하는지 말해 줍니다. 남는 것은 기계 자체입니다. 어떤 웹페이지도 장악된 브라우저나 키 입력을 훔치는 악성코드로부터 비밀번호를 지켜 줄 수 없고, 생성기도 예외가 아닙니다. 검사가 사 주는 것은 더 작고, 진짜입니다 — 어느 서버도 본 적 없는 비밀번호, 읽어 보도록 허락된 산수가 만든 비밀번호.
