我想执行open-ssl以使用wordlist多次加密文件。每次我使用时:
openssl enc -e -rc4 -in plain -out cipher
enter rc4 encryption password:
我想做的是
echo "differentpasswordeverytime" | openssl enc -e -rc4 -in plain -out cipher
我已经完成了while循环,但我找不到将其解析为openssl的方法。这应该通过openssl的STDIN?
我发现了另外两篇关于stdin和解析输入的帖子,但这些都没有用。
干杯
答案 0 :(得分:3)
引自man openssl
(接近结尾):
通过相关论点
多个命令接受密码参数,通常分别使用
-passin
和-passout
作为输入和输出密码。这些允许从各种来源获得密码。这两个选项都采用单个参数,其格式如下所述。如果没有给出密码参数并且需要密码,则提示用户输入一个密码:通常会从当前终端读取此信息并关闭回显。
接下来是获取密码的可能方式列表。我认为你想要的是stdin
,尽管使用环境变量的选项可能会更好。 (你需要export
变量来实现它。)
我建议您仔细阅读说明,并考虑到安全隐患。您还应该阅读您正在使用的子命令的联机帮助页(enc
),或者如果您指定了一个它不理解的选项,请至少阅读所提供的摘要。
(在enc
中,指定的实际选项既不是-passin
也不是-passout
,而是-pass
。)
答案 1 :(得分:0)
如果要将变量通过管道传输到命令中,则应使用 echo
但要小心,因为实现可能会有所不同,并且多行变量有时会折叠为一行。
对我来说 bash
echo "$variable" | command
工作,并保留多行字符串。
如果您希望将内部 /n
和其他转义字符计算为换行符,您应该像这样传递 -e
标志:
echo -e "$variable" | command