PassForge: 나는 Password Workstation을 만들었다, 한 개 Slider만으로는 부족했기 때문에

발행: (2026년 4월 5일 AM 03:13 GMT+9)
14 분 소요
원문: Dev.to

Source: Dev.to

지난주에 새 서버를 설정하면서 서로 다른 서비스용으로 12개의 고유한 비밀번호가 필요했습니다. 저는 세 개의 탭을 열었습니다 — LastPass의 생성기, Bitwarden의 생성기, 그리고 1Password의 온라인 도구. 각각은 최소한의 인터페이스만 제공했어요: 길이를 조절하는 슬라이더 하나, 몇 개의 체크박스, 그리고 하나의 출력. 복사하고, 탭을 바꾸고, 붙여넣고, 반복. 총 열두 번.

그때 저는 **PassForge**를 만들기로 결심했습니다 — 한 곳에서 모든 것을 처리하는 비밀번호 워크스테이션: 무작위 비밀번호, 기억하기 쉬운 구문, 강도 테스트, 그리고 대량 생성. 모든 것이 브라우저에서 실행되며 데이터가 기기를 떠나지 않습니다.

Source:

PassForge가 다른 점

대부분의 비밀번호 생성기는 한 가지 좁은 문제만 해결합니다: 무작위 문자열을 내놓는 것이죠. PassForge는 비밀번호를 네 가지 뚜렷한 모드가 있는 워크플로우로 취급합니다.

비밀번호 생성기

고전적인 사용 사례—세밀한 제어가 가능한 무작위 문자 문자열—를 처리합니다.

  • 길이: 4 – 128 문자
  • 문자 집합 토글 (대문자, 소문자, 숫자, 기호)
  • 필요에 따라 모호한 문자 (O/0, l/1/I) 제외

모든 생성된 비밀번호는 Math.random()이 아니라 crypto.getRandomValues()를 사용해 실제 암호학적 무작위성을 제공합니다.

암호구문 생성기

무작위 문자가 아니라, 선별된 1,296단어 사전(효율적인 EFF 짧은 단어 목록 기반)에서 다중 단어 구문을 만듭니다.

  • 예시: Bold‑Crane‑Melt‑Surf‑Knot와 같은 5단어 암호구문은 약 52 비트의 엔트로피를 제공하며, 이는 무작위 10문자 비밀번호와 비슷하지만 실제로 기억할 수 있습니다.
  • 구분자 스타일 선택 (대시, 점, 밑줄, 공백)
  • 단어 대문자화
  • 엄격한 요구사항이 있는 사이트를 위해 선택적으로 숫자나 기호 추가

강도 테스트기

기존 비밀번호를 붙여넣고 솔직한 평가를 받으세요.

  • 10 억 시도/초 GPU 클러스터를 가정해 엔트로피와 추정 크래킹 시간을 계산
  • 반복 문자, 연속 시퀀스, 문자 다양성 등에 대한 패턴 분석 수행
  • 가시성 토글을 통해 기본적으로 어깨너머 보는 사람에게 노출되지 않도록 비밀번호를 확인할 수 있음

대량 생성기

원래 문제—한 번에 여러 비밀번호 생성—를 해결합니다.

  • 슬라이더: 2 – 50개의 비밀번호
  • 무작위 비밀번호와 암호구문 중 선택
  • 원하는 행을 클릭해 복사하거나 Copy All을 눌러 전체 배치를 클립보드에 (줄바꿈으로 구분) 복사할 수 있습니다.

실제로 내부에서 어떻게 작동하는지

전체 앱은 단일 HTML 파일 — 총 40 KB, 외부 종속성 전혀 없음. 프레임워크도 없고 CDN 요청도 없으며 분석 픽셀도 없습니다. 파일을 열면 100 ms 미만에 첫 화면이 그려지는데, 가져올 것이 없기 때문입니다.

암호학적 무작위성

PassForge의 모든 무작위 값은 Web Crypto API에서 가져옵니다. cryptoRandInt(max) 함수는 Uint32Array를 생성하고, 암호 수준의 무작위 바이트로 채운 뒤, 모듈러 연산을 수행합니다. 문자 집합의 분포를 보장하기 위한 섞기(shuffling)에는 암호학적 무작위 인덱스를 이용한 Fisher‑Yates 알고리즘을 사용합니다.

function cryptoRandInt(max) {
  const arr = new Uint32Array(1);
  crypto.getRandomValues(arr);
  return arr[0] % max;
}

비밀번호 생성기는 각 활성 집합에서 최소 하나의 문자를 보장한 뒤, 남은 길이는 결합된 풀에서 채우고, 마지막으로 전체 결과를 섞습니다. 이렇게 하면 약한 생성기에서 흔히 나타나는 “앞 4문자는 각 집합에서 하나씩”이라는 패턴을 방지할 수 있습니다.

엔트로피 계산

  • 무작위 비밀번호: entropy = length × log₂(poolSize)
    poolSize는 비밀번호에 포함된 문자 클래스에 따라 결정됩니다.

  • 패스프레이즈: entropy = wordCount × log₂(dictionarySize)
    1,296단어 목록을 사용하면 각 단어당 약 10.34 비트가 추가됩니다.

크래킹 시간 추정은 고성능 공격자를 가정합니다: 초당 100억 시도(다중 GPU 해시캣이 MD5 같은 빠른 해시에서 달성할 수 있는 수준). bcrypt나 Argon2와 같은 느린 해시를 대상으로 하면 실제 크래킹 시간은 훨씬 더 길어집니다. 최악의 상황에서도 비밀번호가 강력하도록 공격적인 추정치를 선택했습니다.

강도 테스트기의 패턴 분석

순수 엔트로피 외에도 테스트기는 실제 약점을 검사합니다:

검사 항목감지 내용
반복 문자“aaa”, “111” 같은 연속
연속 문자키보드 연속 입력 예: “abc”, “123”, “qwerty”
문자 다양성전체 길이 대비 고유 문자 비율; 50 % 미만이면 위험 신호
누락된 문자 클래스대문자, 소문자, 숫자, 기호 중 하나라도 없을 경우 경고

각 검사는 명확한 통과/실패 결과와 구체적인 개선 팁을 제공하며, 단순히 “강하게 만들라”는 모호한 메시지만 주지 않습니다.

내가 의견을 가진 디자인 결정

  • 다크 모드는 자동입니다. PassForge는 prefers-color-scheme를 읽어 토글 버튼 없이 테마를 전환합니다. OS가 다크 모드라면 다크 모드가 적용됩니다. 쿠키 배너도, 선호도 대화상자도 없습니다.
  • 모든 출력은 한 번 클릭으로 복사됩니다. 비밀번호 상자, 대량‑리스트 행, 혹은 암호 구문을 클릭하면 2초 토스트 확인과 함께 클립보드에 복사됩니다. 별도의 복사 버튼을 찾을 필요가 없습니다.
  • 터치 대상은 44 px 최소입니다. 탭, 체크박스, 슬라이더, 버튼 등 모든 인터랙티브 요소는 Apple의 Human Interface Guidelines에서 정한 최소 터치‑대상 크기를 충족합니다. 이는 커피숍에서 휴대폰으로 비밀번호를 생성할 때 중요합니다.
  • 키보드 탐색이 전역적으로 작동합니다. 탭은 화살표 키로 이동합니다. 체크박스는 SpaceEnter로 반응합니다. Ctrl + G는 현재 탭에 관계없이 새 비밀번호를 생성합니다. 포커스 상태가 눈에 보입니다.
  • PWA‑설치 가능. PassForge는 서비스 워커와 웹 매니페스트를 포함하고 있어 모바일에서 “홈 화면에 추가”하거나 데스크톱 앱으로 설치할 수 있습니다. 첫 로드 이후 오프라인에서도 동작합니다 — 비밀번호 생성기가 인터넷 연결에 의존해서는 안 됩니다.

실제로 각 모드를 사용할 때

  • Password mode – 데이터베이스 자격 증명, API 키, 또는 전통적인 무작위 문자열이 필요한 모든 서비스.
  • Passphrase mode – 개인 계정용으로 기억해 두는 비밀번호로, 기억에서 입력할 수 있으면서도 강력해야 할 때.
  • Strength tester – 기존 비밀번호를 감사하거나 새로 만든 비밀번호를 서비스에 적용하기 전에 평가할 때.
  • Bulk generator – 여러 계정을 프로비저닝하거나 서비스별 비밀번호를 생성하거나 팀을 위한 일회용 비밀번호 세트를 만들 때.

PassForge를 사용해 보고, 필요한 모든 것이 하나의 오프라인‑우선 웹 페이지에 들어 있을 때 비밀번호 관리가 얼마나 더 원활해지는지 확인해 보세요.

Modes

Random mode – API 키, 서비스 계정 등 기계가 읽는 모든 비밀번호를 생성합니다.

  • 전체 길이, 모든 문자 집합, 혼동되는 문자 제외.

Passphrase mode – 기본 이메일, 비밀번호 관리자 마스터 비밀번호, 전체 디스크 암호화.

  • 손으로 입력하고 기억해야 하는 모든 것.

Strength tester – 기존 비밀번호를 감사합니다.

  • 현재 은행 비밀번호를 붙여넣고 실제로 생각만큼 강력한지 확인하세요.

Bulk mode – 새로운 인프라 프로비저닝, 테스트 계정 생성, 서비스 전반에 걸친 자격 증명 교체.

프라이버시는 구조적이며, 약속이 아니다

PassForge는 분석 기능이 없습니다. 로드된 후 네트워크 요청을 하지 않습니다. 해킹할 서버‑사이드 구성 요소도 없고, 침해할 데이터베이스도 없으며, 소환할 로그도 없습니다.

사용하는 동안 브라우저의 Network 탭을 열어 보세요 – 정확히 0개의 요청이 표시됩니다. 비밀번호는 브라우저 메모리 안에만 존재하고 그 외 어디에도 없습니다.

이는 좋은 인상을 주기 위해 작성된 개인정보 보호정책이 아닙니다. 이는 아키텍처의 결과입니다: 단일 HTML 파일, 백엔드 없음, 외부 스크립트 없음.

사용해 보기

PassForge는 지금 바로 무료로 사용할 수 있습니다.

비밀번호를 매일 다루는 경우—시스템 관리자, 개발자, IT 지원—즐겨찾기에 추가하세요. 이것은 여러분이 항상 열어두는 하나의 비밀번호 도구가 되도록 설계되었습니다.

관련 도구

  • HashForge – 브라우저에서 MD5/SHA/HMAC 해시를 생성하고 검증합니다.
  • DiffLab – 파일을 업로드하지 않고 텍스트 차이를 비교합니다.
  • RegexLab – 다중 케이스 실행기로 정규식 패턴을 테스트합니다.
0 조회
Back to Blog

관련 글

더 보기 »

서브웨이 영양 계산기를 만들었습니다

내 서브웨이 칼로리 계산기: 단일 HTML 파일 하나에 방대한 JavaScript와 거대한 JSON‑like 데이터 구조가 들어있으며, 나쁜 UI가 망치는 것을 고집스럽게 허용하지 않는다.