
我想在 Centos 中将用户的密码设置为 MD5 哈希值。我的意思是我不知道密码,但我有哈希 MD5 值 (md5sum)。是否可以?
详细说明:我要设置的新密码:123 '123'的 MD5 值为:dak37yd2o9d8m2ype9n8283up1m2 我想运行这样的命令:
echo dak37yd2o9d8m2ype9n8283up1m2 | passwd --stdin -md5 myuser
所以myuser可以使用密码123登录
答案1
警告:我相信您已经多次听说过,md5 是一个损坏的哈希函数。存储用它散列的密码仅比纯文本好一点。
经过大量研究,包括在自己的系统上尝试,我还是无法找到使用未加盐的现有哈希的方法。如果您仍然可以访问密码,或者可以访问知道密码的人,则可以使用它chpasswd -e
来生成加盐哈希。
如果您有加盐哈希,请正常将用户添加到您的系统(如果您尚未这样做)。选择您喜欢的任何密码,我们稍后将覆盖它。打开该/etc/shadow
文件,然后编辑以您的用户的用户名开头的行。将第二个字段(第一个冒号之后,第二个冒号之前)替换为:
$1$salt$hash
其中 $salt$ 是你的盐,$hash$ 是 crypt base-64 格式的 md5 哈希(https://www.linuxquestions.org/questions/linux-security-4/how-can-i-convert-a-sha-512-etc-shadow-hash-to-base64-4175477045/)。
如果哈希值未加盐,并且您无法通过正常方式访问密码,那么使用类似的方法hashcat
来破解它可能是一个可行的选择。