重现/ etc / shadow密码


0

我试图从明文密码和盐手动重现/ etc / shadow密码哈希。我们以下面的阴影条目为例:

user:$1$/M$5GK8.h6z8o0WQLEOWC.YI/:16764:0:99999:7:::

这里的明文密码是“toor”。 我尝试将salt附加(并预先添加)到密码并使用MD5进行哈希处理,但是我没有得到与密码文件相同的结果,系统在明文上执行的任何其他转换是否可以推导出哈希值? 我用来生成哈希的命令:

echo -n "/Mtoor"| md5sum

我注意到的其他东西,保存在文件中的哈希映射到176位,而传统的md5映射到128位。


1
它没有使用MD5进行哈希处理,但是 MD5Crypt
otus

Answers:


0

正如@otus所说,哈希不是原始的MD5 - crypt()使用 MD5Crypt ,涉及 几十个MD5迭代 (确切的数量实际上根据散列本身而不同),一些位移和一些小精灵粉尘。

/* Then just as many characters of the MD5(pw,salt,pw) */

/* On a 60 Mhz Pentium this takes 34 msec */

/* Then something really weird... */

简而言之,它不是你可以用基本的东西重现的东西 md5sum而是通过调用libc 隐窝(3) 功能,或使用诸如 mkpasswd 做同样的事情:

# echo -n toor | openssl passwd -stdin -1 -salt /M
$1$/M$5GK8.h6z8o0WQLEOWC.YI/

此外,crypt()输出中的salt和hash都使用略微修改的编码 Base64编码 (每字节6位),而 md5sum 以十六进制(每字节4位)打印哈希值,以便考虑输出长度的差异。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.