`/etc/shadow` 中加密密码的格式

`/etc/shadow` 中加密密码的格式

我在 中看到如下的哈希密码短语/etc/shadow。我不太明白它的格式。

$y$j9T$F5Jx5fExrKuPp53xLKQ..1$X3DX6M94c7o.9agCG9G317fhZg9SqC.5i5rd.RhAtQ7

它由四部分组成,如下所示。根据crypt(5)y意思是yescrypt

https://manpages.debian.org/unstable/libcrypt-dev/crypt.5.en.html

- y
- j9T
- F5Jx5fExrKuPp53xLKQ..1
- X3DX6M94c7o.9agCG9G317fhZg9SqC.5i5rd.RhAtQ7

最后三部分的含义是什么?

答案1

回答“以下各部分的含义是什么”crypt(3)功能”:

  • id
  • param
  • salt
  • hash

正如更详细的解释这里

关于新的yescrypt“密码哈希方案”,第二个字段的含义可以通过阅读来理解,如果您想了解更多信息,您还可以阅读yescrypt v2 规范

我做了更多研究,似乎散列发生在函数中yescrypt_r。您可以在代码中看到不同的参数定义。在is 的
情况下,设置为where是 的第一个数字中的数字,然后使用该函数解析 r 和 pid7N2^xxparamdecode64_uint32_fixed来自该领域的其余部分param
在所有其他情况下(即仅当idis时y,因为该函数检查 的值id,如果不是7or 则返回y),源有条件地设置各种不同的参数,并以我觉得尝试的方式编写代码块理解这会违背原作者的意愿。所以我把它作为练习留给读者。

在同一个文件中,函数是的密码接下来它公开了一个更简单的接口,类似于crypt(3).

相关内容