Passwords

真的強密碼有什麼好處嗎?

  • June 16, 2017

假設您有以下兩個密碼:

password_one = "Z;$]bnNvY3I-Ww]R4qm7PpiE/@y9Qz$cNk{d3"
password_two = "4tjDqq])G-^u:PT~X]QBTa,XqUk[o9`(p?iC`w8*)*T9t\@l+^+U04m@_8CXV:E7L\R]\>N6M.0E|%Ud_f*]bN*rn^;FX7\M%5t?"

在我看來,他們倆都很強大。password_two比破解難嗎password_one

我想這取決於涉及哪種散列。如果使用 Bcrypt 或 sha512 會有什麼好處password_two嗎?

我假設這些是通過從一組 95 個字元中獨立且均勻地隨機選擇字元而生成的。熵是等機率選擇數的以 2 為底的對數,因此隨機獨立選擇的每個角色都有貢獻 $ \log_2(95) \approx 6.6 $ 密碼強度。所以強度password_one大約是 $ 37 \times 6.6 = 244.2 $ 位。

這已經比實際需要的任何加密密鑰更強大——它與 256 位密鑰相當。它已經遠遠超過了密碼雜湊算法的選擇相關的點;如果人們可以可靠地記住這麼強的密碼,我們就不需要這樣的算法了。人們選擇可怕的密碼;經常被引用的 XKCD 密碼強度漫畫Tr0ub4dor&328 位左右的密碼著稱,即使這樣也可能比平均水平要好得多。

這意味著您password_one可以說是完全矯枉過正,因為:

  1. 密碼需要對使用者友好。例如,它們需要便於打字或輸入到自己的設備中。
  2. 如果您的密碼如此強大,那僅意味著您的弱點在其他地方,而且很可能比瘋狂密碼弱得多。你已經過了收益遞減點。

如果您只是普通的 Jane 或 Joe,沒有間諜機構等特別感興趣的對象,我認為 80 位(ish)強度的密碼對於網站登錄來說已經足夠強大了;一個 12 個字元的隨機 ASCII 字元密碼(例如,Z;$]bnNvY3I-)大約在這個級別,並且比您正在做的要方便得多。對於基於密碼的加密,您可以考慮將強度提高到大約 128 位。

引用自:https://crypto.stackexchange.com/questions/48312