为什么使用 sha512 散列的影子密码包含 99 个字符而不是 129 个字符?

为什么使用 sha512 散列的影子密码包含 99 个字符而不是 129 个字符?

我的 Linux 配置为使用sha512。然而,该/etc/shadow文件包含只有 99 个字符的哈希密码。为什么是 99 而不是 129(64*2+1)?请注意,我在确保系统设置为使用 sha512 后更改了密码。

请查看输出:

# grep sha512 /etc/pam.d/system-auth-ac
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
# grep ENCRYPT_METHOD /etc/login.defs
ENCRYPT_METHOD SHA512
# grep root /etc/shadow
root:$6$YwkRWeVN$z4Z7OKuohyyT/4gZgnOkKSWPaMvx1eCHFGNCiyFZx1QYydrEArO.HdH2JGCfosXg0sTnZFFdJnfw5QgfUqovO1:16175:0:99999:7:::

请注意,密码哈希以 开头,$6$因此表示它是sha512哈希。

答案1

哈希以 base64 格式存储,这意味着一个字符编码 6 位。因此需要 512 / 6 = 86(四舍五入)个字符。

哈希从第三个(不是第二个)$ 开始,到下一个冒号结束,正好是 86 个字符。YwkRWeVN第二个和第三个 $ 之间的字符串称为

相关内容