您可以使用影子文件验证给定密码对于给定用户名是否正确.
在大多数现代发行版中,哈希密码存储在shadow文件/etc/shadow中(只有root用户才能读取).作为root用户,从给定用户的阴影文件中提取行,如下所示:
cat /etc/shadow | grep username
你会看到这样的情况:
username:$1$TrOIigLp$PUHL00kS5UY3CMVaiC0/g0:15020:0:99999:7:::
用户名后面是1美元.这表明它是一个MD5散列.在那之后还有一美元,然后(在本例中)TrOIigLp后跟另一美元.TrOIigLp是盐.之后是散列密码,它是使用salt进行散列的——在本例中是PUHL00kS5UY3CMVaiC0/g0.
现在,您可以使用openssl使用相同的salt对给定密码进行哈希,如下所示:
openssl passwd -1 -salt TrOIigLp
在提示时输入给定的密码,openssl命令应该使用提供的salt计算MD5哈希,并且它应该与影子文件中的上述内容完全相同.上面命令中的-1用于MD5哈希.