OpenSSL命令行工具:来自字符串的"-in"参数

TCB*_*B13 5 terminal openssl

我如何欺骗-inOpenSSL命令行工具的参数,以便从字符串而不是文件中获取数据?

通常,我可以使用echo命令来执行此操作:

echo 'test string 1' | openssl enc -aes-256-cbc -a -salt -pass pass:mypassword
Run Code Online (Sandbox Code Playgroud)

有没有办法可以在没有echo和管道的情况下做到这一点?类似的-pass pass:论点?

提前致谢!

Nem*_*emo 5

如果您的 shell 是 bash 并且您的操作系统支持它,您可以使用进程替换

openssl enc -in <(echo 'test string 1') -aes-256-cbc -a -salt -pass pass:mypassword
Run Code Online (Sandbox Code Playgroud)


TCB*_*B13 3

我找到了解决这个问题的方法!无需传递之前和之后的所有内容,因为 openssl 有交互模式,因此可以在不输入的情况下运行命令:

openssl enc -aes-256-cbc -a -salt -pass pass:mypassword
Run Code Online (Sandbox Code Playgroud)

OpenSSL 将等待数据加密。这对于流也很有用!

然后输入要加密的字符串或数据,并EOT在终端中发送(传输结束),通常^D Control+D它会输出到stdout加密的字符串!

希望有一天这可以帮助别人!