OpenSSL命令行工具:来自string的“-in”参数

时间:2012-01-20 02:47:46

标签: terminal openssl

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

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

echo 'test string 1' | openssl enc -aes-256-cbc -a -salt -pass pass:mypassword

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

提前致谢!

2 个答案:

答案 0 :(得分:4)

如果你的shell是bash并且你的操作系统支持它,你可以使用process substitution

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

答案 1 :(得分:2)

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

openssl enc -aes-256-cbc -a -salt -pass pass:mypassword

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

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

希望有一天这可能对某人有所帮助!

相关问题