Terminal OpenSSL命令行工具:“-在;来自字符串的参数

Terminal OpenSSL命令行工具:“-在;来自字符串的参数,terminal,openssl,Terminal,Openssl,如何欺骗OpenSSL命令行工具的-in参数,以便从字符串而不是文件中获取数据 通常,我可以使用echo命令来执行此操作: echo 'test string 1' | openssl enc -aes-256-cbc -a -salt -pass pass:mypassword 有没有一种不用回声和管道的方法?类似于-pass:参数 提前谢谢 如果您的shell是bash,并且您的操作系统支持它,那么您可以使用: openssl-enc-in我找到了解决这个问题的方法!由于openssl具有

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

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

echo 'test string 1' | openssl enc -aes-256-cbc -a -salt -pass pass:mypassword
有没有一种不用回声和管道的方法?类似于
-pass:
参数


提前谢谢

如果您的shell是bash,并且您的操作系统支持它,那么您可以使用:


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

openssl enc -aes-256-cbc -a -salt -pass pass:mypassword
OpenSSL将等待数据加密。这对于流也很有用

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


希望有一天这能帮助别人

您好,它在我的终端上运行良好,问题是我正在使用Objective-C中的NSTask调用该工具,但在那里不起作用。。。谢谢。您可以使用“/bin/bash-c…”向bash提供命令。这还有其他问题(shell元字符导致安全漏洞等),但它会让进程替换工作。是的。。。“安全漏洞”我在这里使用OpenSSL。。。所以,正如你所理解的,我关心的是有一些安全感。(至少由NSPipe提供安全性)。谢谢
openssl enc -aes-256-cbc -a -salt -pass pass:mypassword