我想在我的电脑上创build一些Linux用户来testingJohnTheRipper对不同types的密码(包括长度,字符集和encryption哈希方法)。 如何轻松指定创build新用户时使用的哈希algorithm? 我知道文件/etc/login.defs包含variablesENCRYPT_METHOD,在许多Debian系统上默认设置为SHA512,但是我知道是否可以在不修改这个文件的情况下使用另一个encryption哈希。
ps:我试图修改这个文件,用命令adduser重新启动并创build一个新的用户,但是encryption哈希方法用户总是SHA512
谢谢
使用非默认散列方法设置密码的最简单方法是手动散列密码,然后在设置用户时提供该密码:
adduser --password HASHEDPASSWORD user
HASHEDPASSWORD必须遵循系统的crypt函数标准( man 3 crypt ):
如果salt是以字符“$ id $”开头的string,然后是以
"$"结尾的string:$id$salt$encrypted那么不是使用DES机器,而是使用id标识所使用的encryption方法,然后确定如何解释密码string的其余部分。 支持以下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编码密码。
要从命令行生成一个正确的哈希,你可以看看这里 。
经过一些testing,用不同的哈希algorithm创build不同用户的最佳方法是由3个步骤组成:
这里是一个用户test1的例子,用密码1234和md5作为哈希函数。
sudo adduser test1 --disabled-password sudo mkpasswd --method=md5 --salt=coolsalt 1234 $1$coolsalt$qTXiZzGn08J.xYkV1ce1y1
现在,只需编辑/ etc / shadow
编辑 test1:*:16559:0:99999:7::: 之前 test1:*:16559:0:99999:7:::
编辑 test1:$1$coolsalt$qTXiZzGn08J.xYkV1ce1y1:16559:0:99999:7:::
之后,您可以尝试使用此用户login以检查格式是否为正确。
whoami root su test1 Password: 1234 whoami test1
谢谢您的帮助