如何让 sha1sum 输出二进制?

如何让 sha1sum 输出二进制?

我需要对二进制 sha1 哈希进行 base64 编码。最好的方法是什么?我想这会涉及将二进制数据传输到base64。不幸的是,sha1sum没有二进制输出选项。有什么想法吗?

这是我需要做的:

echo mydata|sha1sum --binary-output|base64

但是 sha1sum 没有 --binary-output 选项。

答案1

尝试将十六进制转换为 base64。此答案是一种选择。还有许多其他实现。

我怎样才能将十六进制转换为 base64?

答案2

也许是这样的:

echo mydata | sha1sum | xxd -r -p | base64

... 可以解决您的问题。

https://unix.stackexchange.com/questions/82561/convert-a-hex-string-to-binary-and-send-with-netcat对于类似的问题。

答案3

您可以使用openssl来计算SHA-1-binary以二进制形式输出摘要。

最后管道将二进制摘要转换为 Base-64。

echo -n mydata | openssl dgst -binary -sha1 | openssl base64

解释

将数据(mydata在本例中)发送到 STDOUT:
echo -n mydata

-n\n标志从输出中删除新行( )。

SHA-1通过 OpenSSL计算:
 openssl dgst -sha1

但是该命令是以SHA-1HEX方式显示的,若要显示二进制则-binary需要添加flag:

openssl dgst -binary -sha1
转换SHA-1Base-64
openssl base64

相关内容