如何在BASH中将md5 sum编码为base64

Rus*_*rse 24 bash base64 md5

我需要将md5哈希编码为base 64.问题是如果将md5sum命令的输出提供给base64命令,则将其视为文本而不是十六进制数据.如何管理?Base64命令没有选项将其输入设置为十六进制数.

谢谢你的帮助.

plu*_*dra 52

openssl dgst -md5 -binary而不是md5sum.如果需要,您也可以使用它进行base64编码,只使用一个程序用于所有用途.

echo -n foo | openssl dgst -md5 -binary | openssl enc -base64

(openssl md5而不是openssl dgst -md5工作,但我认为最好是明确的)


Ben*_*ela 7

在将十六进制传递给 base64 之前,您还可以使用 xxd(与 vim 一起提供)来解码十六进制:

(echo 0:; echo -n foo | md5sum) | xxd -rp -l 16 | base64 
Run Code Online (Sandbox Code Playgroud)