密碼外洩檢查
密碼外洩檢查要問資料庫一個聊天機器人答不了的問題:這個密碼是否出現在已知的資料外洩中?輸入一個密碼,本頁會在瀏覽器中對它做雜湊,只把雜湊的前 5 個字元傳送給 Have I Been Pwned 的 Pwned Passwords 服務,並告訴你這個密碼在真實外洩中出現過多少次——密碼本身永遠不會離開本頁。你也可以一次檢查最多 50 個密碼,或上傳一份 SHA-1 雜湊檔案。配套指南你的密碼是否在資料外洩中解釋了這個數字的含義和下一步該做什麼;要換一個全新的密碼,請使用密碼產生器;要找出已暴露在某個線上站點上的憑證,請使用外洩祕密掃描器。
最後更新:
你的密碼永遠不會離開本頁
本頁會在瀏覽器中用 SHA-1 對你的密碼做雜湊,只把雜湊的前 5 個字元傳送給 Have I Been Pwned。密碼本身——甚至它的完整雜湊——永遠不會離開你的裝置,不會被儲存,也不會被記錄。服務會傳回所有共享這 5 個字元的雜湊後綴,匹配在你的裝置上完成。模型的工作方式見 haveibeenpwned.com/Passwords。
檢查一個密碼
一次檢查多個
重複的密碼只檢查一次。結果只顯示一個編號(#1、#2…)——永遠不會顯示密碼本身。CSV 匯出只包含編號和次數。
一個文字檔案,每行一個 40 個字元的 SHA-1 雜湊,最多 500 行。不是有效雜湊的行會作為略過的行列出,絕不會悄悄丟掉。結果只顯示截斷後的雜湊,永遠不會顯示完整雜湊。
或把檔案拖到此框的任意位置。限制:2 MB。檔案僅在本裝置上讀取,永遠不會被上傳。
結果
誠實的限制
這裡只檢查 Pwned Passwords 外洩語料——從數百起已知資料外洩中收集的密碼。“未找到”意思是“未在已知外洩中出現”,而不是“安全”。
這裡不提供電子郵件外洩查詢:Have I Been Pwned 的電子郵件外洩 API 是付費訂閱服務,因此本頁不會承諾免費提供它。
外洩資料:Have I Been Pwned — Pwned Passwords(haveibeenpwned.com/Passwords)。
什麼是外洩語料——以及那個數字意味著什麼
外洩語料是從真實資料外洩中收集的密碼集合:當某個服務被攻破、其密碼資料庫外洩後,其中的密碼——通常以雜湊形式儲存——會被收集、去重並編入索引,任何人都可以查詢某個密碼是否在其中。Have I Been Pwned 的 Pwned Passwords 語料包含來自數百起外洩的十多億個密碼,並且隨著新外洩的出現還在不斷增長。這種規模正是檢查的意義所在:你花五秒鐘想出來的密碼,很可能已有成千上萬的人以完全相同的形式想出來過——而如果它曾經出現在某個被攻破的資料庫裡,攻擊者手上已經有了它,正準備拿到每一個能登入的頁面去試。
這項檢查靠一種叫 k-匿名(k-anonymity)的技巧,無需透露密碼就能完成。密碼在瀏覽器中用 SHA-1 做雜湊,得到一個 40 個字元的指紋;只有該指紋的前 5 個字元會被傳送給服務。服務傳回所有共享這 5 個字元的指紋後綴——通常大約八百個——瀏覽器再在本地的清單中尋找自己的後綴。5 個字元足以把一個密碼藏在數百個長相相似的密碼之中,又短到服務永遠無法知道你問的是哪個密碼。密碼本身從不經過網路,從不進入伺服器紀錄,也從不出現於 URL 裡。
找到了、沒找到——以及下一步該做什麼
次數大於零,意味著這個密碼在外洩中出現過那麼多次。數以百萬計的次數——“password” 出現過五千多萬次——意味著它是每一次撞庫攻擊中最先嘗試的猜測之一,應該在所有使用它的地方都換掉,先從電子郵件和銀行開始。次數很小也不算過關:即使只出現過一次,也說明這個密碼已經在攻擊者的字典裡,而且很可能說明它遵循某種可猜的模式——名字加年份、鍵盤上的連續按鍵、把常見短語裡的一個字母換成數字。兩種情況的解決辦法是一樣的:換成一個你在任何地方都沒用過的唯一密碼,用密碼產生器產生,保存在密碼管理器裡,而不是記在腦子裡或記事本裡。
次數為零是個好消息,但有嚴格的限度:它只說明這個密碼沒有出現在該語料所知道的外洩中。它沒有說明密碼是否強壯、是否容易被猜到,也沒有說明它是否已經躺在某起尚未曝光的外洩裡。一個短而常見的密碼可能不在語料中,卻仍能在幾分鐘內被猜測攻破;而一個在十個網站重複使用的密碼,只需一起外洩就會丟掉全部十個。只有當密碼同時滿足長、隨機、只用在一個地方這三條時,“未找到”才可以當作保留它的理由。任何一條不滿足,都應該換掉——這項檢查告訴你的是暴露情況,而不是強度。
永遠不要把密碼貼進聊天機器人或 AI 助手,問它是否安全。聊天會保留對話紀錄:你的密碼會被存到別人的伺服器上,被用來訓練或調校模型,甚至可能在以後的回答中被原樣引用——這與外洩檢查的目的正好相反。同樣的規則適用於任何要求你在表單裡輸入密碼並承諾幫你評判的網站:除非像本頁這樣在本地做雜湊並把機制展示給你,否則就預設密碼正在被傳送和儲存。外洩檢查之所以值得做,正是因為它可以在不把祕密交給任何人的情況下完成,而這一點值得守護,哪怕問題本身看起來很小。
用通俗的話說明這項檢查
| k-匿名 | 只有密碼雜湊的前 5 個字元會離開瀏覽器。服務無法分辨共享這個前綴的數百個密碼中,你問的是哪一個。 |
| SHA-1 雜湊 | 密碼的 40 個字元指紋,在瀏覽器中計算。同一個密碼總是產生同一個指紋,而指紋無法被反推回密碼。 |
| Pwned Passwords 語料 | 從數百起已知資料外洩中收集的十多億個密碼,由 Have I Been Pwned 維護,隨著新外洩的出現而更新。 |
| 範圍 API | 本頁呼叫的公開、免費、無需金鑰的 HIBP 介面:給定一個 5 字元前綴,它傳回所有匹配的後綴及其外洩次數,每行一個 SUFFIX:count。 |
| 外洩次數 | 密碼在語料中出現過的次數。出現 1 次就已經說明它在攻擊者的字典裡;數以百萬計則說明它是最先被嘗試的猜測之一。 |
| 未找到 | 密碼的雜湊後綴不在傳回的範圍裡——它沒有出現在已知外洩中。這不是密碼強壯或安全的結論。 |
| 批次貼上 | 最多 50 個密碼,每行一個。重複的密碼只檢查一次,共享 5 字元前綴的密碼共用一次請求,結果只顯示編號——永遠不顯示密碼。 |
| 雜湊檔案 | 最多 500 個 SHA-1 雜湊,每行一個,適合那些你根本不想輸入的密碼。無效行會被列為略過;結果只顯示截斷後的雜湊。 |
| CSV 匯出 | 批次結果的試算表:只有打碼後的標籤和外洩次數。明文密碼和完整雜湊永遠不會進入下載的檔案。 |
| 電子郵件外洩 | 這裡不提供。查詢某個電子郵件地址是否出現在外洩中,需要 HIBP 的付費電子郵件 API,因此本頁不會承諾免費的電子郵件查詢。 |
常見問題
我的密碼會被傳送給 Have I Been Pwned 嗎?
不會。瀏覽器用 SHA-1 對密碼做雜湊,只傳送雜湊的前 5 個字元。服務傳回數百個匹配的後綴,瀏覽器在本地檢查自己的後綴。密碼本身——甚至它的完整雜湊——永遠不會離開本頁,不會被儲存,也不會被記錄。
“出現過 5200 萬次”是什麼意思?
意思是這個確切的密碼在被攻破的資料庫中出現過 5200 萬次,橫跨許多不同的外洩和帳戶。它是每一次撞庫攻擊中最先嘗試的猜測之一——被盜密碼會被自動拿到登入頁面去試。請在所有使用它的地方換掉它,先從電子郵件和銀行開始,並且永遠不要再重複使用它。
我的密碼沒有被找到,現在安全了嗎?
不一定。“未找到”只說明它沒有出現在該語料所知道的外洩中。一個短而可預測的密碼可能不在語料中,卻仍能在幾分鐘內被猜出來;而一個在多個網站重複使用的密碼,只需一起外洩就會丟掉全部網站。只有當它同時長、隨機、只用在一個地方時,才可以保留。
為什麼這裡不能檢查電子郵件地址?
檢查某個電子郵件地址是否出現在外洩中,用的是另一項 HIBP 服務——電子郵件外洩 API——那是一項付費訂閱。本頁只使用免費的 Pwned Passwords 範圍 API,它檢查的是密碼,不是電子郵件地址;承諾免費提供電子郵件查詢會是不誠實的。
我的密碼在外洩中被找到了,我先做什麼?
在所有使用它的地方換掉它,先從那些保護著其他帳戶的帳戶開始——首先是電子郵件,然後是銀行和密碼找回路徑——並且永遠不要在任何地方重複使用舊密碼。用密碼產生器產生一個全新的唯一密碼,保存在密碼管理器裡。如果同一個密碼保護著好幾個帳戶,就把它們全部當作已經暴露,因為攻擊者會把外洩的密碼拿到每一個能登入的服務去試。