alltools.one
Security
2025-06-29
7 min
alltools.one Team
PasswordEntropySecurityCryptographyAuthentication

密碼熵值解析:什麼才是真正的強密碼

當網站告訴你密碼「弱」或「強」時,它其實在衡量熵值——也就是密碼的數學隨機性。理解熵值能幫助你建立真正安全的密碼,而不只是打起來很麻煩的密碼。

什麼是熵值?

熵值以位元(bits)為單位,量化密碼的不可預測性。每增加一位元的熵值,攻擊者必須嘗試的密碼數量就翻倍。計算公式如下:

Entropy = log₂(C^L)

其中:

  • C = 字元集的大小
  • L = 密碼的長度

或者寫成:熵值 = L × log₂(C)

各字元集的熵值

字元集字元池大小 (C)每字元位元數
僅數字 (0-9)103.32
小寫字母 (a-z)264.70
小寫字母 + 數字365.17
大小寫字母 (a-z, A-Z)525.70
大小寫字母 + 數字625.95
所有可列印 ASCII 字元956.57

範例計算

  • password(8 個小寫字母):8 × 4.70 = 37.6 位元 — 數秒內即可破解
  • P@ssw0rd(8 個混合字元):8 × 6.57 = 52.6 位元 — 數小時內可破解
  • correct-horse-battery-staple(28 個小寫字母與符號):由於長度優勢,實際有效熵值遠高於此

長度 vs. 複雜度

以下是一個違反直覺的事實:長度對熵值的貢獻比複雜度更大

密碼長度熵值破解時間(每秒 10 億次猜測)
Xy7!426.3 位元< 1 秒
Xy7!Qp2$852.6 位元142 年
mysimplepassword1675.2 位元12 億年
correct horse battery22103 位元宇宙熱寂之後

一個 16 字元的純小寫密碼比一個包含所有字元類型的 8 字元密碼更強。這就是為什麼現代安全指引(NIST SP 800-63B)建議使用長密語而非短而複雜的密碼。

「複雜度規則」的問題

傳統密碼政策(必須包含大寫、小寫、數字、符號)其實適得其反:

  1. 可預測的模式:使用者會把第一個字母大寫,在末尾加 1!Password1!
  2. 記憶困難:複雜密碼最後都被寫在便利貼上
  3. 虛假的安全感:8 字元的「複雜」密碼,熵值其實不如 16 字元的簡單密碼

NIST 的現代指引

  • 最少 8 個字元,建議 15 個以上
  • 不設組成規則(不要求大寫、符號等)
  • 比對已洩露密碼資料庫
  • 允許所有可列印字元,包括空格
  • 不強制定期更換密碼

密語策略

密語使用隨機單字代替隨機字元:

method: pick 4-6 random words from a dictionary
example: "timber quantum spoon velocity"
entropy: 4 words × ~12.9 bits/word (from 7,776-word list) ≈ 51.7 bits
better:  6 words ≈ 77.5 bits

Diceware 方法使用 7,776 個單字的列表(6^5,對應五顆骰子的擲法)。每個單字增加 12.9 位元的熵值。

優點

  • 容易記憶(你可以想像這些單字的畫面)
  • 夠長(自然達到 20-35 個字元)
  • 足夠的單字數即可獲得高熵值
  • 容易輸入

使用我們的密碼產生器來生成安全的隨機密碼和密語。

實際攻擊速度

熵值只有在與攻擊速度相比時才有意義:

攻擊類型速度40 位元密碼60 位元密碼80 位元密碼
線上攻擊(有速率限制)1,000/秒12.7 天36,559 年3,800 萬年
離線攻擊(CPU)10 億/秒1.1 秒36.5 年38,334 年
離線攻擊(GPU 叢集)1 兆/秒< 1 秒13 天38 年
國家級攻擊1P/秒< 1 秒< 1 秒14 天

對於有速率限制和鎖定機制的線上帳號,40 位元以上就足夠了。對於離線攻擊(被竊取的密碼雜湊值),至少需要 80 位元以上。這就是為什麼 Argon2 和 bcrypt 等密碼雜湊演算法存在的原因——它們讓每次猜測都變得昂貴。

密碼管理器的數學

密碼管理器徹底改變了這個等式:

  • 一組強主密碼:80 位元以上的熵值(6 個以上的單字密語)
  • 所有其他密碼:隨機生成,128 位元以上,每個網站獨立使用
  • 不重複使用:某個網站的資料外洩不會影響其他帳號

支持密碼管理器的數學論證是壓倒性的。一組被重複使用的密碼,無論多強,都比每個網站使用獨立弱密碼更危險,因為一次外洩就會讓所有帳號被攻陷。

衡量你的密碼

評估密碼強度時,請考慮:

  1. 它是否已被洩露? — 即使「強」密碼,如果已經洩露就是弱的(可在 haveibeenpwned.com 檢查)
  2. 它是隨機的嗎? — 人為選擇的密碼熵值遠低於隨機密碼
  3. 它如何被儲存? — 使用 cost factor 12 的 bcrypt 比純 MD5 增加約 22 位元的有效熵值

想了解更多關於安全密碼生成的資訊,請參閱我們完整的密碼生成指南

常見問題

我需要多少位元的熵值?

對於有速率限制的線上帳號:至少 40-50 位元。對於保護加密資料(磁碟加密、密碼管理器主密碼)的密碼:80 位元以上。對於密碼金鑰:128 位元以上。正確的答案取決於你保護的是什麼,以及誰可能會發動攻擊。

在密碼中加一個符號會顯著增強強度嗎?

加一個符號會將字元池從 62 擴大到 95,每個字元約增加 0.6 位元。對於 8 字元的密碼,大約多了 5 位元——相當於多加一個小寫字母。長度幾乎總是比增加字元類型更值得投資。

相關資源

Published on 2025-06-29
Password Entropy Explained: What Makes a Password Strong | alltools.one