Linux
如何為影子創建 SHA-512 雜湊密碼?
我見過的以前的 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
、...MD5
、SHA256
和SHA512
),它將使用最強的可用值。雜湊的 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 withpip3 install passlib
):python3 -c 'import passlib.hash; print(passlib.hash.sha512_crypt.hash("test"))'