所以我的问题很简单,给定一个Linux用户名和一个密码,我如何测试它是否是一个有效的帐户?
您可以使用影子文件来验证给定密码对于给定用户名正确。
在大多数现代发行版中,哈希密码存储在影子文件/ etc / shadow中(仅root用户可读取)。以root身份从影子文件中为给定用户拉出一行,如下所示:
cat /etc/shadow | grep username
您将看到如下内容:
username:$1$TrOIigLp$PUHL00kS5UY3CMVaiC0/g0:15020:0:99999:7:::
用户名之后为$ 1。这表明它是MD5哈希。在那之后还有另一个$,然后(在这种情况下)是TrOIigLp,然后是另一个$。TrOIigLp是盐。之后是哈希密码,使用密码哈希-在本例中为PUHL00kS5UY3CMVaiC0 / g0。
现在,您可以使用openssl使用相同的盐对给定的密码进行哈希处理,如下所示:
openssl passwd -1 -salt TrOIigLp
在出现提示时输入给定的密码,openssl命令应使用提供的盐值来计算MD5哈希值,并且该值应与影子文件中的密码完全相同。上面命令中的-1用于MD5哈希。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句