如何使用 cat 通过 openssl 动态地对 stdin 进行 base64 编码?

如何使用 cat 通过 openssl 动态地对 stdin 进行 base64 编码?

以下命令适用于stdin使用 进行编码echo

echo "abc" | openssl enc -base64

此命令还适用于替换stdin使用中的字符cat

cat | sed 's/a/b/g'

但是,以下命令(应使用进行编码)stdin不能cat满足我的需要,因为每次我按回车键时它都不会显示编码值。

cat | openssl enc -base64

如何stdin使用进行即时编码cat

答案1

如果你输入

cat | openssl enc -base64

然后按Ctrl+D它将对您刚刚输入的所有内容进行编码。

答案2

首先,你(差不多)绝不需要使用cat |cat one_file |。例如,您的sed示例可以正常工作

sed 's/a/b/g'

所以我的第一个建议是尝试

openssl enc -base64

没有cat

但说实话,我并不指望这个方法能奏效。你可能需要更花哨一点:

while read x
do
      echo "$x" | openssl enc -base64
done

请注意,这openssl将为每一行输入运行一个新命令,因此这可能不会产生与通过单次调用运行的相同输入相同的结果openssl

答案3

您可以尝试使用以下命令将其转换为 Base64 编码:

cat abc.jks | Base64

相关内容