鸽舍pw世代不匹配

根据Dovecot的wiki ,SHA256scheme是存储在base64中的密码的总和。

$ doveadm pw -s SHA256 -p "test" {SHA256}n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg= 

但它不匹配这个命令的输出:

 $ echo -n "test" | sha256sum | awk '{ print $1 }' | base64 OWY4NmQwODE4ODRjN2Q2NTlhMmZlYWEwYzU1YWQwMTVhM2JmNGYxYjJiMGI4MjJjZDE1ZDZjMTVi MGYwMGEwOAo= 

为什么不一样?

我find了答案。 输出

 $ echo -n "test" | sha256sum 

是散列的hex表示。 sha256sum没有原始(二进制)输出的选项。 这个命令的作用:

 $ echo -n "test" | openssl dgst -binary -sha256 | base64