🚨 漏洩パスワードチェック
入力したパスワードが、過去に漏洩したパスワードのデータベース(Have I Been Pwned / Pwned Passwords)に含まれていないかを確認します。パスワード本体はブラウザの外に一切出ません。
🔒 通信はHave I Been PwnedのAPIに対しハッシュ先頭5文字のみ送信します。弊社サーバーには一切送信されません。
チェックするパスワード
パスワードを入力し、ボタンを押すとチェックを実行します(入力しただけでは通信しません)。
仕組み:パスワードもハッシュ全体も送信していません
このツールはHave I Been Pwnedの「Pwned Passwords」range APIを、k-匿名性(k-Anonymity)という方式でブラウザから直接呼び出しています。入力したパスワードそのものは、どの通信にも一切含まれません。
あなたのブラウザの中だけで完結する処理
────────────────────────────────
1. パスワード "password"
↓ SHA-1でハッシュ化(ブラウザ内のWebCrypto APIで計算)
2. 5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD
↓ 先頭5文字だけを切り出す(残り35文字は手元に残す)
3. プレフィックス "5BAA6"
ここから先だけが外部と通信する部分
────────────────────────────────
4. "5BAA6" ─── GETリクエスト ───→ https://api.pwnedpasswords.com/range/5BAA6
5. ← "5BAA6"から始まる全ハッシュの一覧が返る
(末尾35文字 : 出現回数、が数百〜数千件)
例)...1E4C9B93F3F0682250B6CF8331B7EE68FD:9545824
...FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:12
6. 返ってきた一覧を、手元に残しておいた
残り35文字「1E4C9B93F3F0682250B6CF8331B7EE68FD」と
ブラウザの中だけで突き合わせる
↓
7. 一致する行があれば、その出現回数が「漏洩回数」送信されるのはハッシュの先頭5文字のみです。同じ先頭5文字を持つハッシュは数百〜数千種類存在するため、これだけではAPI提供元(Have I Been Pwned)側も、あなたがどのパスワードを調べているかを特定できません。これがk-匿名性の考え方です。
パスワード本体・SHA-1ハッシュ全体のいずれも、弊社サーバーやHave I Been Pwned以外の第三者に送信・保存されることはありません。
関連ツール
- パスワード強度チェッカー:エントロピーや弱点パターンからパスワードの強度そのものを診断します。
- ランダム文字列発行:漏洩や使い回しのない、新しい強力なパスワードを発行します。
※ 通信はHave I Been PwnedのAPIに対しハッシュ先頭5文字のみ送信します。弊社サーバーには一切送信されません。パスワード本体・ハッシュ全体はブラウザの外に出ません。
こんなツールをこれからも作っていきます。もしこれは!と思っていただけましたら、シェア・応援していただけると嬉しいです!😀