dmosk / passcheck

유출 여부 비밀번호 확인

Have I Been Pwned의 k-익명성으로 비밀번호를 확인하세요. SHA-1은 브라우저에서 계산되고 짧은 해시 접두사만 전송됩니다. 로컬 엔트로피 추정도 있습니다. 비밀번호는 저희 서버로 보내지지 않습니다. 개인정보 안내를 보세요. 새 비밀번호가 필요하면 passgen.

비밀번호는 기기에 남습니다. Have I Been Pwned API에는 짧은 SHA-1 해시 접두사만 전송됩니다(k-익명성). 저희는 비밀번호를 받거나 저장하지 않습니다.

passcheck를 쓰는 이유

  • HIBP와 k-익명성. SHA-1은 브라우저에서 계산되고 API에는 짧은 해시 접두사만 갑니다.
  • 로컬 엔트로피. 길이와 문자 부류로 강도 추정 — 기기에서.
  • 우리 백엔드에 비밀번호 없음. 입력값을 받거나 저장하지 않습니다.
  • 명확한 결과. 유출에서 발견 / 미발견; 발견 시 대략적인 HIBP 횟수.
  • 정직한 한계. 절대 보안 약속 없음 — HIBP 모음과 휴리스틱만.
  • 무료·다국어. 계정 없음; 모든 로케일 UI/SEO.
  • 생성기와 연동. 새 비밀번호는 passgen.dmosk.net.

비밀번호 확인 방법

  1. 비밀번호를 입력합니다(표시/숨기기 선택 가능).
  2. 확인을 누르면 브라우저가 SHA-1을 계산하고 접두사로 HIBP에 질의합니다.
  3. 유출 상태와 로컬 강도 추정을 확인합니다.
  4. 발견되면 아직 쓰는 곳에서 바꾸고 passgen으로 새로 만듭니다.

비밀번호 위생과 HIBP

Have I Been Pwned는 알려진 유출의 비밀번호 해시를 모읍니다. 일치하면 그 문자열이 이미 유출 데이터에 나왔다는 뜻입니다 — 사용을 중단하세요. 강도 점수는 휴리스틱이며 고유 난수 비밀번호를 대체하지 않습니다.

팁:

  • 서비스마다 고유 비밀번호를 쓰세요.
  • 메모·채팅이 아니라 비밀번호 관리자에 저장하세요.
  • 길이와 다양성이 사전의 “교묘한” 단어보다 낫습니다.
  • 가능하면 2단계 인증을 켜세요.
  • HIBP에서 찾히면 아직 통하는 모든 곳에서 바꾸세요.
  • HIBP “미발견”이 “영원히 안전”은 아닙니다.
  • 새 비밀번호는 passgen.
  • 수상한 사이트에 비밀번호를 입력하지 마세요 — 이 도구는 우리 서버로 보내지 않습니다.

용도

  • 알려진 유출에 비밀번호가 있는지 빠르게 확인;
  • 교체 전 거친 엔트로피 참고;
  • 약하거나 재사용된 비밀번호의 위험 설명;
  • passgen 생성기로 이어가기;
  • 우리 서버에 업로드하지 않고.

자주 묻는 질문

HIBP k-익명성이란?

브라우저가 SHA-1을 계산하고 해시 앞부분만 보냅니다. HIBP는 그 접두사의 접미사 목록을 반환하고 완전 일치는 로컬에서 — 전체 비밀번호는 API로 가지 않습니다.

비밀번호가 우리에게 업로드되나요?

아니요. 받거나 저장하지 않습니다. 짧은 SHA-1 접두사만 HIBP API로 갑니다.

Have I Been Pwned란?

공개 유출의 비밀번호 해시를 모으는 Troy Hunt 프로젝트입니다. passcheck는 range API를 사용합니다.

“약 N회”는 무슨 뜻인가요?

HIBP 데이터에서의 대략 출현 횟수입니다. 높을수록 더 퍼진 것 — 바꾸세요.

엔트로피 추정은?

거친 휴리스틱: 길이 × 문자 부류로 추정한 알파벳의 log2. 실험실 감사가 아닙니다.

“미발견”이 절대 보안인가요?

아니요. HIBP는 불완전하며, 약하거나 그 모음 밖에서 유출됐을 수 있습니다.

새 비밀번호는 어디서?

passgen.dmosk.net을 여세요 — 브라우저에서 생성.

무료인가요?

네 — 가입 없음, 확인 요금 없음.

완전 오프라인인가요?

강도 추정은 로컬입니다. 유출 확인은 HIBP API 네트워크가 필요합니다.

HIBP 장애나 CORS 실패 시?

연결 오류가 보입니다. 나중에 다시 시도하세요. 강도 추정은 될 수 있습니다.

어떤 해시?

HIBP k-익명성 range API가 요구하는 비밀번호 SHA-1입니다.

확인 기록을 보관하나요?

아니요. 입력 비밀번호는 우리에게 오지 않으며 DB에 저장되지 않습니다.