忘記密碼時,為何網站不肯直接告訴你舊密碼?原來這是對你最大的保護

·

每天登入各種服務時,「忘記密碼」可能是最高頻出現的四個字。點下去後,網站永遠只會讓你重設密碼,而不是把原密碼寄給你。為什麼它們這麼「吝嗇」?答案藏在資訊安全的三個關鍵詞:資料庫外洩、雜湊加密、加鹽雜湊

資料庫失竊有多簡單?比你改網址還容易

想像一個日常場景:
你把網址列 order?id=1001 改成 order?id=1002,竟能看到陌生人的訂單。這不是電影橋段,而是經典漏洞 IDOR(不安全的直接參考)。由於工程師沒做好權限檢查,改個數字就讓所有人裸奔。

已公開的兩起真實案例

  • 某健身房系統:任意下載所有會員個資
  • 防疫實聯制平台:網址改數字即可取得他人姓名與電話

若再疊加 SQL Injection,更可在查詢語句內「注入」額外指令,整張資料庫揮手可得。當駭客拿到整庫數據,你最擔心的就是——裡面躺著你的明文密碼

👉 延伸閱讀:想一次搞懂駭客如何不寫程式就能翻遍你的資料?

外洩後的骨牌效應:從購物網站到 Google 全線失守

隱私被看光只是第一步。
如果網站把「原始密碼」直接存進去,那麼駭客就能拿去橫向衝撞:用你的信箱+同一組密碼,直接撞進你的 Google、Facebook、Line Pay……

統計顯示,80 % 以上用戶在 5 個以上網站重複使用同一組密碼。也就是說,只要一家小店資料庫失守,你的數位生活全線崩潰

因此,連網站自己都不該知道你的密碼——這不是偷懶,而是保護。

為什麼網站「不知道」你的密碼?雜湊 Hash 如何辦到

核心技術叫做 單向雜湊(Hash)
想像把「密碼+研磨機」變成固定長度的「粉末」:

輸入雜湊後(SHA-256 示意)
abc1236ca13d52ca70c883…
abc124cd7011e7a6b27d44…

只要演算法夠強,即使拿著「粉末」,駭客也無法反推你真正的密碼。

註冊流程就這麼簡單:

  1. 你輸入 abc123
  2. 網站計算雜湊並把「粉末」存庫。
  3. 登入時再拿你輸入的密碼算一次「粉末」,比對一致便放行;不一致就拒絕。
  4. 資料庫永遠不儲存 abc123,自然沒得寄給你

👉 想深入技術細節?點擊看工程師如何實作零知識密碼

加鹽(Salting):阻擋「彩虹表」最後一塊拼圖

單純雜湊仍有死角:駭客可以預先建好「密碼 ↔ 雜湊」對照表(彩虹表),見碼查表秒破。
解方是「加鹽」——替每個用戶撒一把獨一無二的「鹽」:

即使彩虹表收錄了 abc123 的雜湊,也因為鹽的加入而失效。
每個用戶的鹽都不同,破解成本呈指數級上升。

常見疑問一次說清(FAQ)

  1. Q:為何有些論壇真的能把舊密碼寄給我?
    A:那代表它沒有使用雜湊,而是明文或簡單加密儲存。遇到這種網站儘快跑,風險極高。
  2. Q:如果我所有網站都設定不同密碼,還需要擔心嗎?
    A:依然需要!密碼複雜度不夠仍可能被暴力破解;加鹽雜湊是網站底線義務。
  3. Q:SHA-1 或 MD5 還能安全嗎?
    A:已證實碰撞風險高,建議優先使用 SHA-256、bcrypt、Argon2 等演算法。
  4. Q:重設密碼是不是代表我舊密碼就「作廢」了?
    A:是的,系統會用新密碼計算新雜湊,舊值立即失效。
  5. Q:瀏覽器內建密碼管理器安全嗎?
    A:便利性高,但請務必啟用主密碼或生物辨識保險箱,防止本地端被偷。

一次學會自我保護三步驟

下次點下「忘記密碼」時,你可以放心:網站不是不幫你,而是它真的不知道你的密碼,這正是對你最大的保護。