我需要帮助解决文件的openssl问题。
我需要使用加密密码来解密文件而不是纯文本。 那么如何使用以下命令并同时传递加密密码(这将自动完成而不是手动完成):
openssl aes-256-cbc -d -a -in test.txt.enc -out test.txt.new -pass 通过:密码
如果我把加密密码放在这里(直接使用文件(-pass file:filename
)),文件就不会被解密(我用纯文本密码手工加密了)。
谢谢, 安娜
答案 0 :(得分:0)
也许我不理解你的推理,但似乎你想要一些工具以安全的方式保存加密文件的密码,即你想要保密密码本身。并且所有解密都必须是自动化/脚本化的吗?
问题是,当必须解密加密密码文件上的密码时,您将面临同样的明文密码安全问题。除了控制密码文件的权限之外,没有办法解决这个问题。您的密码必须以明文形式存储,无论是密码文件还是最终文件要解密。
一个可能的折衷方案可能是使用代理程序来执行此操作,代理程序可以在内存中以某种模糊形式存储您的纯文本密码,例如:ssh-agent或gpg-agent用于gpg,这可能是您的寻找。但是,我认为这些只能用于公钥/私钥(PPK)类型加密,而不能用于上面使用的对称密钥加密(请参阅:link1和link2)
此外,您可能希望使用gpg而不是openssl来满足您的加密/解密需求(请参阅:OpenSSL vs GPG for encrypting off-site backups?)
有关使用openssl / gpg进行对称密钥加密的更多信息:https://stackoverflow.com/a/31552829/3242988