Linux

如何為影子創建 SHA-512 雜湊密碼?

  • January 30, 2022

我見過的以前的 SF 問題導致產生 MD5 散列密碼的答案。

有沒有人建議生成 SHA-512 雜湊密碼?我更喜歡單行而不是腳本,但是,如果腳本是唯一的解決方案,那也很好。

更新

用這個替換以前的 py2 版本:

python3 -c "import crypt;print(crypt.crypt(input('clear-text pw: '), crypt.mksalt(crypt.METHOD_SHA512)))"

編輯:請注意這個答案是 10 歲以上。

這是一個襯裡:

python -c 'import crypt; print crypt.crypt("test", "$6$random_salt")'

Python 3.3+ 包含mksalt在 crypt中,這使得使用起來更容易(也更安全):

python3 -c 'import crypt; print(crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512)))'

如果您不提供參數crypt.mksalt(它可以接受crypt.METHOD_CRYPT...MD5SHA256SHA512),它將使用最強的可用值。

雜湊的 ID(第一個之後的數字$)與使用的方法有關:

  • 1 -> MD5
  • 2a -> Blowfish(不在主線 glibc 中;在某些 Linux 發行版中添加)
  • 5 -> SHA-256(從 glibc 2.7 開始)
  • 6 -> SHA-512(從 glibc 2.7 開始)

我建議您查看什麼是鹽等,並根據 smallclamgers 評論加密和散列之間的區別。

更新 1:生成的字元串適用於 shadow 和 kickstart 腳本。

更新 2:警告。如果您使用的是 Mac,請參閱有關在 Mac 上的 python 中使用它的評論,它似乎無法按預期工作。

在 macOS 上,您不應該使用上述版本,因為 Python 使用的系統版本的crypt()行為不同,並且使用不安全的 DES 加密。你可以使用這個平台獨立的一個班輪(需要 passlib – install with pip3 install passlib):

python3 -c 'import passlib.hash; print(passlib.hash.sha512_crypt.hash("test"))'

引用自:https://serverfault.com/questions/330069