你可以在一秒鐘內查到自己的密碼有沒有出現在已知的洩露庫裡,而密碼本身不會離開你的裝置。聽起來矛盾,其實原理很簡單:你的瀏覽器先把密碼算成一個雜湊 (一段從密碼算出來的短指紋,反推不回密碼),只把這個指紋的前五個字元發出去,和洩露庫的比對在你自己的瀏覽器裡完成。下面按順序講:為什麼要查,查詢是怎麼做到不洩露的,結果是什麼意思,查到了該怎麼辦。
| 查詢怎麼走 | |
|---|---|
| 你的密碼 | 變成 SHA-1 雜湊 |
| 離開你裝置的 | 只有雜湊的前 5 個字元 |
| 伺服器返回的 | 所有以這 5 個字元開頭的雜湊尾巴,幾百條 |
| 比對 | 在你的瀏覽器裡 |
| 密碼本身 | 哪兒也不去 |
為什麼要查密碼洩露
網上公開流傳著幾十億條密碼,來自過去多年被拖庫的網站。不是你常用的那幾個,而是任何網站:十年前註冊過的論壇、某個網店、某個外賣平臺。這種庫一洩露,裡面的密碼就直接進了暴力破解的字典。你的密碼如果在字典裡,猜出來只要幾秒:程式順著列表往下試就行。
危險不在那個老論壇被黑了,而在同一個密碼你還在另外五個地方用著,包括信箱。信箱是其他一切的鑰匙:銀行、社交帳號、政務平臺都靠它找回密碼。所以問題不是「我被黑了嗎」,而是「我的密碼在不在第一批被試的名單裡」。
查詢是怎麼做到不洩露的
把密碼發給一個陌生網站去問它有沒有洩露,這本身就很荒唐。所以查詢是另一種做法。
- 瀏覽器先算出密碼的 SHA-1 雜湊。這是單向運算,從雜湊反推不回密碼。
- 只有雜湊的前五個字元離開你的裝置。幾百萬個不同的密碼雜湊都以同樣五個字元開頭,所以從請求裡看不出你查的是哪一個。
- 洩露庫的伺服器返回所有以這五個字元開頭的雜湊尾巴,通常幾百條。
- 瀏覽器在這幾百條裡找你的雜湊尾巴。找到了,密碼在庫裡;沒找到,公開的洩露庫裡沒有它。
這個方法叫 k-匿名 (你藏在幾百個相似的請求裡),是查詢 Have I Been Pwned 資料庫的標準方式。那個庫多年來收集了各次已知洩露裡的密碼,只存雜湊,不和信箱、姓名掛鉤。
打個比方:你去問「姓王的人裡有沒有欠債的」,對方把所有姓王的欠債名單給你,你自己在名單裡找。對方只知道你問了姓王的,不知道你是誰。
你不用信我們的話,可以自己看。開啟你的密碼洩露了嗎,再開啟瀏覽器的開發者工具,切到「網路」標籤,輸入一個密碼。發出去的只有一個請求,去 api.pwnedpasswords.com,地址裡帶著五個字元。密碼不在裡面。
結果是什麼意思
「未找到」。 這個密碼不在公開的洩露庫裡。這不是它沒在任何地方被偷的保證:庫只知道被公開報道過的洩露,剛發生、還沒公開的那次不在裡面。但「未找到」加上一個又長又獨一無二的密碼,已經是不錯的位置。
「出現過 12000 次」。 這個數字是所有洩露庫裡帶這個密碼的記錄數。不是說你被黑了 12000 次,而是另外一萬兩千個人也想出了同一個密碼,它早就躺在破解字典的最前面。這樣的密碼不管當初從哪兒漏的,在你用它的任何網站上都能幾秒鐘被猜出來。
| 結果 | 意思 |
|---|---|
| 未找到 | 已知洩露裡沒有 |
| 出現過 1 到 10 次 | 已經進字典了,換掉 |
| 出現過幾千次 | 幾秒就能猜出 |
| 這個數字 | 不是「你被黑了幾次」,是「多少人想出了它」 |
查到了:改什麼,按什麼順序
順序比速度重要。不要慌亂地把所有密碼全改一遍,先把最值錢的關上。
- 信箱。 其他一切都靠它找回。新密碼要長,和舊的不像。
- 銀行和支付應用。 錢在哪兒,先改哪兒。
- 政務平臺和所有存著身份證資訊的地方。
- 用過同一個密碼的其他網站。 真正的麻煩在這兒:你幾乎不可能記起還在哪兒用過它。這正是一個密碼用在多個網站上的危險:漏一處,全開。
- 給信箱和銀行開兩步驗證。 就算密碼再洩露一次,沒有第二步也用不了。驗證器應用比簡訊驗證碼可靠,簡訊可能被補辦 SIM 卡的騙子截走。
新密碼別自己想:人自己編出來的,幾乎肯定已經在字典裡。密碼生成器能生成又長又隨機的密碼,你不用記,記密碼是密碼管理器的活。
怎麼才能不用每個月都查
查洩露治的是症狀。病根是密碼重複、靠腦子編。如果每個網站都有自己單獨的隨機密碼,任何一個洩露隻影響一個帳號,也就沒什麼可查的了。
這正是密碼管理器做的事:生成、儲存、自動填寫,最重要的是,它不會把密碼填到一個地址相似的假網站上。瀏覽器自帶的、雲端的、本地的怎麼選,第一條看有沒有裝置端加密:資料庫在上傳前就已加密,服務商讀不到。
說實話,我自己會這麼做:查信箱、銀行、政務平臺這三個密碼。哪個查到了,當天就改。剩下的不一個一個查,花一個晚上全搬進密碼管理器,以後不再想這個問題。
| 查完之後 | |
|---|---|
| 信箱 | 新密碼 |
| 銀行 | 新密碼 |
| 這兩處 | 開兩步驗證 |
| 其餘 | 搬進密碼管理器 |
| 花的時間 | 一個晚上,以後不用再查 |
這個查詢不做什麼
它不查你的信箱地址有沒有洩露。按信箱查需要把信箱本身發出去,那就不匿名了。那種查詢在 haveibeenpwned.com 上另外做。
它看不到還沒被公開的洩露。它也不知道你在別處還用沒用同一個密碼,這隻有你自己知道。
最後一點:查密碼和 VPN 沒關係。隧道把你的地址藏起來不讓網路看見,但密碼不是從網路裡漏的,而是從你曾經輸入過它的那個網站的資料庫裡漏的。不同的威脅,不同的工具。
密碼查到了、又不知道從哪兒下手,把情況交給 AI。
幫我理清密碼洩露查詢之後該做什麼。
結果:(未找到 / 出現過 N 次)。
這個密碼用在哪兒:(信箱 / 銀行 / 社交 /
不記得還有哪兒)。
兩步驗證:(開了 / 沒開 / 不清楚)。
密碼管理器:(有 / 沒有)。
告訴我先改哪個、按什麼順序,以及怎麼找出
可能用了同一個密碼的網站。不要說「把所有
密碼都改了」,給我一個順序。
一句話總結
- 洩露查詢是安全的:出去的只有雜湊的五個字元,密碼留在你這兒。
- 「出現過 N 次」意味著它已經在破解字典裡,在任何地方都能幾秒被猜出。
- 查到了:信箱、銀行、政務平臺、兩步驗證,按這個順序。
- 想以後不再查,每個網站用密碼管理器生成的獨立隨機密碼。