Hash

如何從 SHA512 雜湊生成一個好的密碼?

  • July 24, 2015

我必須更改機器上的本地管理員密碼。我不想將密碼儲存在數據庫中。我必須生成一個密碼,以便稍後再次連接到機器。所以我定期生成一個秘密隨機字元串(儲存在數據庫中)並用機器名對其進行雜湊處理。在這一點上,我想知道如何從這個雜湊生成密碼(遵循目前的良好做法),並且我想找到最安全的方法來做到這一點。

所以……我必須從 SHA-512 生成密碼(在 Python 中並遵循目前的良好做法)。我怎樣才能做到這一點?那麼關於密碼生成和生成密碼的安全方面呢?

因此,您的想法是通過從儲存在其他地方的單個隨機密鑰派生機器密碼來有效地將密碼身份驗證轉換為基於密鑰的身份驗證。假設密鑰儲存是安全的(可能使用強密碼加密),這是合理的。

最好只使用大多數遠端訪問工具(如 ssh)中內置的基於非對稱密鑰的身份驗證,這樣您就不會通過滾動自己的加密來搞砸任何事情。但是如果你需要使用密碼認證,你的想法也不是不安全的。

實際上從 SHA-512 雜湊(或任何種子材料)生成密碼/密碼,這是一個相當機械的過程:

  1. 選擇字母表(或字典)。對於密碼,您可以使用 hex 或 base64,對於密碼片語,任何方便大小的字典都可以。
  2. 選擇位強度。128 位就足夠了,但可能會導緻密碼很長。OTOH,讓它比輸入熵長是沒有用的。
  3. 使用輸入位生成字元/單詞,直到您擁有足夠長的密碼。對於像 SHA-512 這樣的散列輸入,您可以只使用任一端的第一位,對於非混合種子,您可能應該首先對其進行散列(如果熵低,則使用強密碼散列)。

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