我在/etc/shadow
. 我不太明白它的格式。
$y$j9T$F5Jx5fExrKuPp53xLKQ..1$X3DX6M94c7o.9agCG9G317fhZg9SqC.5i5rd.RhAtQ7
Run Code Online (Sandbox Code Playgroud)
它由四部分组成,如下所示。据crypt(5)
,y
指yescrypt
。
https://manpages.debian.org/unstable/libcrypt-dev/crypt.5.en.html
- y
- j9T
- F5Jx5fExrKuPp53xLKQ..1
- X3DX6M94c7o.9agCG9G317fhZg9SqC.5i5rd.RhAtQ7
Run Code Online (Sandbox Code Playgroud)
最后三部分是什么意思?
“crypt(3)
函数各部分的含义是什么”的答案:
id
param
salt
hash
正如这里更详细的解释。
关于新的yescrypt
“密码哈希方案”,第二个字段的含义可以通过阅读this来理解,如果你想了解更多信息,你也可以阅读yescrypt v2规范。
我做了一些更多的研究,似乎散列是在函数yescrypt_r 中发生的。您可以在代码中看到不同的参数定义。
在id
is的情况下7
,N
设置为2^x
where x
is 的第一个数字中的数字param
,然后 r 和 p 都使用decode64_uint32_fixed
该param
字段其余部分的函数进行解析。
在所有其他情况下(即仅当id
is 时y
,因为该函数检查 的值id
并返回,如果它不是7
或y
),源代码有条件地设置了各种不同的参数,代码块的编写方式让我觉得试图理解它会违背原作者的意愿。所以我把它留给读者作为练习。
在同一个文件中,它后面的函数yescrypt公开了一个更简单的接口,类似于crypt(3)
.
归档时间: |
|
查看次数: |
1345 次 |
最近记录: |