alltools.one
Security
2026-02-25
9 min
alltools.one Team
passwordspassphrasessecurityencryptionauthentication

密碼短語 vs 密碼 — 為什麼隨機單詞勝過複雜字元

你可能被告知要建立像P@$$w0rd123這樣的密碼——大寫字母、小寫字母、數字、符號,應有盡有。這是令人不安的真相:這個密碼很糟糕。它遵循可預測的替換模式,破解工具可以在幾秒內利用。與此同時,像木材-量子-湯匙-速度這樣的東西看起來簡單,但破解難度高出幾個數量級。

讓我們分析原因。

傳統密碼的問題

大多數人被迫建立「複雜」密碼時,都會做同樣的事情:

  • 從常見單詞開始:passwordmonkeydragon
  • 首字母大寫:Password
  • 用符號替換字母:P@ssword
  • 添加數字:P@ssword123
  • 末尾加符號:P@ssword123!

破解工具知道這一點。每個主要的密碼破解字典都包含這些精確的替換規則。@替換a0替換o3替換e——這些是最先測試的變換。你的「複雜」密碼可能花了三十秒想出來,但在自動攻擊面前毫秒內就會淪陷。

根本問題:人類在隨機性方面表現糟糕。我們選擇有意義的單詞,遵循可預測的模式,重複使用相同的技巧。密碼複雜性規則試圖彌補這一點,但只是創造了虛假的安全感。

什麼真正讓密碼變強:熵

密碼強度用——隨機性的位元來衡量。每個位元都會使攻擊者需要嘗試的可能性數量翻倍。公式很簡單:

熵 = 長度 × log₂(字元池大小)

對於使用全部95個可列印ASCII字元的隨機8字元密碼:

8 × log₂(95) = 8 × 6.57 ≈ 52.6位元

聽起來不錯,但問題在於——只有當每個字元都完全隨機選擇時才適用。當人類選擇P@ssw0rd時,由於選擇是可預測的,實際熵要低得多。

這樣想:熵衡量攻擊者需要多少次猜測。如果從一百萬種可能性中選擇,大約是20位元。如果從一兆種可能性中選擇,大約是40位元。每多10位元意味著大約需要多一千倍的猜測。

密碼短語:以隨機單詞作為建構塊

密碼短語採用完全不同的方法。不是隨機字元,而是將隨機單詞串聯在一起:

timber quantum spoon velocity

每個單詞從大型單詞列表中隨機選擇。如果你的單詞列表有2,048個單詞,每個單詞貢獻11位元的熵(log₂(2048) = 11)。四個隨機單詞給你:

4 × 11 = 44位元

使用更大的7,776個單詞列表(標準Diceware列表),每個單詞貢獻12.9位元:

4 × 12.9 = 51.7位元
6 × 12.9 = 77.5位元

關鍵優勢:密碼短語在保持高熵的同時,易於記憶和輸入。你可以想像木材、量子粒子、湯匙和速度。這個心理圖像會留下來。試試用xK#9mP!2qL做到這一點。

XKCD的洞見

網路漫畫XKCD在第936期漫畫中著名地闡述了這個概念。論點是:像「correct horse battery staple」這樣的四個單詞密碼短語大約有44位元的熵(假設約2,048個單詞的列表),而且記憶起來輕而易舉。像Tr0ub4dor&3這樣的「複雜」密碼雖然更難輸入和記憶,但熵卻更低。

這幅漫畫闡明了安全研究人員多年來一直在說的重要觀點:我們的密碼複雜性規則最佳化了錯誤的東西。它們使密碼對人類來說很困難,但對電腦來說幾乎沒有增加多少難度。

話雖如此,XKCD的例子自2011年以來已被廣泛討論,其中一些具體數字也受到了質疑。核心原則仍然成立:隨機性和長度勝過複雜性和聰明

Diceware方法

Diceware是生成密碼短語的黃金標準。工作原理如下:

  1. 取得一個單詞列表——經典Diceware列表包含7,776個單詞,每個對應一個五位數(11111到66666)
  2. 為每個單詞擲五個骰子(或一個骰子擲五次)
  3. 在單詞列表中查找結果數字
  4. 為每個需要的單詞重複(最少四個,最好六個)

例如,擲出4-2-5-3-1可能給你「鉛筆」。擲出1-6-3-4-2可能給你「錨」。以此類推。

為什麼用實體骰子?因為它們是不需要信任軟體的真正隨機來源。當然,加密安全的亂數產生器(如我們密碼產生器中使用的Web Crypto API)同樣有效,而且更方便。

Diceware的安全性依賴於一個簡單的數學事實:即使攻擊者知道你使用了Diceware並且知道確切的單詞列表,他們仍然面臨7,776^n種可能性,其中n是單詞數。這就是通過熵而不是隱蔽性來保證安全的定義。

熵比較:數字不會說謊

讓我們正面比較常見的密碼策略:

策略範例需要的猜測次數
8字元隨機(小寫)mqxhplvt37.6位元~1370億
8字元隨機(全ASCII)kX#9mP!252.6位元~6千兆
4詞密碼短語(2,048詞)timber-quantum-spoon-velocity44位元~17兆
4詞密碼短語(7,776詞)cleft-cam-niche-turret51.7位元~3.7千兆
6詞密碼短語(7,776詞)cleft-cam-niche-turret-plod-anvil77.5位元~2.2 × 10²³
12字元隨機(全ASCII)Bx!4pQm#9kLz78.8位元~4.7 × 10²³

結論:六個單詞的Diceware密碼短語在強度上大致等同於12個字元的完全隨機密碼——但記憶和輸入要容易得多。

以每秒十億次猜測(針對快速雜湊的現實離線攻擊速度),52位元密碼大約持續52天。77位元密碼短語大約持續70億年。這就是攻擊者的小麻煩和宇宙熱寂之間的區別。

何時使用密碼 vs 密碼短語

兩種方法都不是普遍更好的。各有適用場景:

使用隨機字元密碼的場景:

  • 密碼管理器生成並儲存——你永遠不需要輸入或記住它們。使用20個以上的隨機字元以獲得最大熵。
  • 存在長度限制——某些舊系統將密碼限制在16甚至8個字元。隨機字元每個字元包含更多的熵。
  • 機器間認證——API金鑰、權杖和密鑰應該是長隨機字串。

使用密碼短語的場景:

  • 需要記憶——密碼管理器的主密碼、磁碟加密密碼短語或裝置解鎖碼。
  • 頻繁輸入——密碼短語比隨機字元串輸入更快,尤其是在行動裝置上。
  • 需要口頭分享——在電話裡說「timber quantum spoon velocity」比拼寫xK#9mP!2qL容易得多。
  • 需要離線安全——磁碟加密和加密貨幣錢包受益於高熵密碼短語。

大多數人的最佳選擇:用六個單詞的密碼短語作為密碼管理器的主密碼,其他所有內容用20個以上字元的隨機密碼

密碼短語最佳實踐

不是所有密碼短語都相等。遵循這些規則:

1. 使用真正隨機的單詞

單詞必須隨機選擇,不能由你來選。一旦你選擇了「有意義」的單詞或組成句子,你就破壞了熵計算。「我非常喜歡我的狗」是一個句子,不是密碼短語——而且很容易被破解。

2. 最少四個單詞,最好六個

從7,776個單詞列表中選四個單詞大約有52位元——對於有速率限制的線上帳戶足夠。六個單詞大約有78位元——適合保護離線加密資料。對於高安全性用例,使用七個或八個。

3. 可選:添加數字或符號

在單詞之間插入隨機數字或符號會增加幾個額外位元並擊敗任何純字典攻擊:

timber-quantum-7-spoon-velocity
timber!quantum!spoon!velocity

六個或更多單詞時這不是嚴格必要的,但這是一個低成本的改進。

4. 使用分隔符

單詞之間的連字號、空格或句點可以提高可讀性而不降低安全性:

timber-quantum-spoon-velocity
timber quantum spoon velocity
timber.quantum.spoon.velocity

任何一致的分隔符都可以。選擇你覺得最容易輸入的。

常見密碼短語錯誤

使用歌詞或名言

「生存還是毀滅,這是個問題」不是密碼短語——這是一句名言。攻擊者維護著來自文學、歌曲、電影和宗教文本的常見短語列表。任何可識別的短語都是弱點。

選擇相關的單詞

「蘋果 香蕉 櫻桃 葡萄」使用了隨機單詞,但它們都是水果。這種相關性大大降低了有效熵,因為攻擊者可以針對語義類別。

使用太少的單詞

任何列表中的兩三個單詞都不夠。使用7,776個單詞的列表,三個單詞只有38.8位元——GPU叢集幾小時內就能破解。

讓自動補全幫忙

如果你輸入第一個單詞然後讓手機建議下一個,你生成的是具有語言模型可預測性的文字,而不是骰子的隨機性。始終使用適當的隨機產生器。

我們的工具如何幫助

我們的密碼產生器包含一個專用的密碼短語模式,基於精選的2,048個單詞列表。每個單詞都使用Web Crypto API選擇——安全專業人員使用的同一加密亂數產生器。你可以設定單詞數量、分隔符字元,以及是否包含數字或大寫單詞。

所有生成完全在你的瀏覽器中進行。沒有單詞傳送到任何伺服器,沒有密碼短語被記錄,工具在載入後可以離線工作。這對於生成主密碼和加密密碼短語至關重要——你永遠不應該將最重要的秘密信任給伺服器。

常見問題

如果有人知道我使用Diceware方法,密碼短語還安全嗎?

是的。Diceware的安全性取決於熵,而不是方法的保密性。即使攻擊者知道你的確切單詞列表和單詞數量,他們仍然面臨7,776^n種可能的組合。六個單詞意味著超過2.2 × 10²³種可能性。

量子電腦能破解密碼短語嗎?

Grover演算法理論上將位元強度減半(77位元變為約39位元有效)。這意味著六個單詞的密碼短語需要變成十二個單詞才能抵抗量子攻擊。但能夠做到這一點的實用大規模量子電腦尚不可用。今天使用八個單詞提供了合理的安全餘量。

我應該輪換我的密碼短語嗎?

只有在懷疑被洩露時才需要。NIST指南(SP 800-63B)明確建議不要強制定期密碼輪換,因為它會導致隨著時間推移密碼變弱。如果服務被入侵或你與某人分享了密碼短語,請更改它。

應該使用多大的單詞列表?

越大越好,但收益遞減。標準Diceware列表(7,776個單詞)經過充分測試並被廣泛推薦。我們的工具使用了一個為可記憶性最佳化的2,048個單詞列表——每個單詞都是常見的、獨特的、容易拼寫的。使用2,048個單詞,你需要大約多一個單詞來匹配7,776個單詞列表的熵。

相關資源


🛠️ 立即生成密碼短語: 密碼產生器 — 100%免費,所有處理在瀏覽器中完成。無資料上傳。試試我們精選的2,048個單詞列表的密碼短語模式。


Published on 2026-02-25
Passphrases vs Passwords — Why Words Beat Characters | alltools.one