如何用Python加密文件但可以用shell解密?
我需要加密一个文件,然后把它发送给另一个人,那个别人只能通过命令行来解密这个文件。
我通常用 openssl
这个命令来加密文件,命令是:openssl enc -aes-256-cbc -salt -in [文件名] -out [输出文件名] -pass file:[密钥文件的直接路径]
,然后就把这个文件发送出去。
接下来,那个别人会用 openssl
命令来解密这个文件,命令是:openssl enc -d -aes-256-cbc -in [加密文件] -out [输出文件名] -pass file:[密钥文件的直接路径]
我本来打算用 os.system
来实现这个过程,但我觉得用 Python 还有其他方法可以加密文件,然后在命令行那边解密。
1 个回答
2
你需要使用 openssl
吗?
我使用的是命令行的 GnuPG,还有一个非常好用的 Python 库:python-gnupg。这个库其实是对命令行工具 gpg
的一个封装,所以它们的工作方式是一样的。
你可以用非对称加密来代替密钥文件(我觉得密钥文件里包含密码)。为每一方创建一对私钥和公钥,然后用接收方的公钥来加密信息,再用发送方的私钥来签名。接收方会用发送方的公钥来检查签名,并用自己的私钥来解密信息。私钥可以用密码保护,但如果你确定你的环境是安全的,也可以不设置密码。