我想在我的電腦上建立一些 Linux 用戶來測試 JohnTheRipper 針對不同類型的密碼(包括長度、字元集和加密哈希方法)。如何輕鬆指定創建新用戶時使用哪種哈希演算法?我知道檔案 /etc/login.defs 包含變數 ENCRYPT_METHOD,在許多 Debian 系統上預設為 SHA512,但我想知道是否可以在不修改此檔案的情況下使用另一個加密雜湊。
ps:我嘗試修改此文件,重新啟動並使用命令 adduser 創建新用戶,但加密雜湊方法用戶始終是 SHA512
謝謝
答案1
使用非預設雜湊方法設定密碼的最簡單方法是先手動雜湊密碼,然後在設定使用者時提供該密碼:
adduser --password HASHEDPASSWORD user
其中 HASHEDPASSWORD 必須遵循系統的函數標準crypt
( man 3 crypt
):
如果 salt 是以字元「$id$」開頭的字串,後面跟著以 結尾的字串
"$"
:$id$salt$encrypted
然後,id 不使用 DES 機器,而是標識所使用的加密方法,然後確定如何解釋密碼字串的其餘部分。支援以下 id 值:
ID | Method --------------------------------------------------------- 1 | MD5 2a | Blowfish (not in mainline glibc; added in some | Linux distributions) 5 | SHA-256 (since glibc 2.7) 6 | SHA-512 (since glibc 2.7)
$5$salt$encrypted
SHA-256 編碼的密碼也是如此 ,$6$salt$encrypted
SHA-512 編碼的密碼也是如此。
要從命令列產生正確的哈希,您可以查看這裡。
答案2
經過一些測試,使用不同的雜湊演算法創建不同用戶的最佳方法由 3 個步驟組成:
- 建立無密碼用戶
- 使用指定參數(鹽、密碼、雜湊演算法)建立 UNIX 格式密碼
- 在 /etc/shadow 中設定產生的 UNIX 密碼
這是一個使用者的例子測試1,有密碼1234和MD5作為哈希函數。
sudo adduser test1 --disabled-password sudo mkpasswd --method=md5 --salt=coolsalt 1234 $1$coolsalt$qTXiZzGn08J.xYkV1ce1y1
現在,只需編輯/etc/影子
編輯前
test1:*:16559:0:99999:7:::
編輯後
test1:$1$coolsalt$qTXiZzGn08J.xYkV1ce1y1:16559:0:99999:7:::
之後,您可以嘗試使用該使用者登錄,檢查格式是否正確。
whoami root su test1 Password: 1234 whoami test1
謝謝您的協助