我如何欺骗-in
OpenSSL命令行工具的参数,以便从字符串而不是文件中获取数据?
通常,我可以使用echo
命令来执行此操作:
echo 'test string 1' | openssl enc -aes-256-cbc -a -salt -pass pass:mypassword
Run Code Online (Sandbox Code Playgroud)
有没有办法可以在没有echo
和管道的情况下做到这一点?类似的-pass pass:
论点?
提前致谢!
如果您的 shell 是 bash 并且您的操作系统支持它,您可以使用进程替换:
openssl enc -in <(echo 'test string 1') -aes-256-cbc -a -salt -pass pass:mypassword
Run Code Online (Sandbox Code Playgroud)
我找到了解决这个问题的方法!无需传递之前和之后的所有内容,因为 openssl 有交互模式,因此可以在不输入的情况下运行命令:
openssl enc -aes-256-cbc -a -salt -pass pass:mypassword
Run Code Online (Sandbox Code Playgroud)
OpenSSL 将等待数据加密。这对于流也很有用!
然后输入要加密的字符串或数据,并EOT
在终端中发送(传输结束),通常^D
Control+D
它会输出到stdout
加密的字符串!
希望有一天这可以帮助别人!
归档时间: |
|
查看次数: |
6250 次 |
最近记录: |