Openssl sha1长度

时间:2012-06-20 12:59:45

标签: linux bash openssl

为什么执行命令openssl sha1 < /dev/null | wc --bytes后输出为50? SHA-1的输出大小应该是160位,这给我们20个字节。

2 个答案:

答案 0 :(得分:5)

为什么输出openssl sha1 < /dev/null | wc --bytes 50?

$ openssl sha1 < /dev/null
(stdin)= da39a3ee5e6b4b0d3255bfef95601890afd80709

因为20字节摘要的前缀为(stdin)=,并以十六进制表示。

答案 1 :(得分:2)

如果你想要原始的,未格式化的字节,将OpenSSL的十六进制格式输出传递给xxd -r -p,将该表示转换为原始字节。

例如,要创建字符串foo的Base64编码的SHA-1摘要:

$ echo "foo" | openssl sha1 | xxd -r -p | base64
8dLS+STphqyG/fezbJS83zK+7BU=

或者只是验证邮件长度:

$ echo "foo" | openssl sha1 | xxd -r -p | wc --bytes
20