考虑 /etc/shadow 文件中的以下一行:
root:$1$NFEf74q.$bmukkxAq9dOMJINgEtP7u0:15258:0:::::
从这里我了解到哈希算法是 md5 ( $1
),从第三个 $ 符号开始是哈希密码,由 22 个字符组成。据我所知,这个长度是由于哈希进一步用 base64 算法编码,这是正确的吗?如果是,您将如何从中获取原始 md5(32 个字符)?
答案1
您使用 base64_decode 对字符串进行解码,然后将二进制字符串转换为十六进制表示。
在 php 中你可以使用
$md5 = bin2hex(base64_decode($string));