根据Dovecot 的维基,SHA256 方案是将密码以 base64 形式存储的 sha256 总和。
$ doveadm pw -s SHA256 -p "test"
{SHA256}n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg=
但它与该命令的输出不匹配:
$ echo -n "test" | sha256sum | awk '{ print $1 }' | base64
OWY4NmQwODE4ODRjN2Q2NTlhMmZlYWEwYzU1YWQwMTVhM2JmNGYxYjJiMGI4MjJjZDE1ZDZjMTVi
MGYwMGEwOAo=
为什么不同?
答案1
我找到了答案。
$ echo -n "test" | sha256sum
是哈希的十六进制表示。sha256sum
没有原始(二进制)输出的选项。此命令有效:
$ echo -n "test" | openssl dgst -binary -sha256 | base64