如何用Python加密文件但可以用shell解密?

1 投票
1 回答
2668 浏览
提问于 2025-04-17 17:24

我需要加密一个文件,然后把它发送给另一个人,那个别人只能通过命令行来解密这个文件。

我通常用 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 的一个封装,所以它们的工作方式是一样的。

你可以用非对称加密来代替密钥文件(我觉得密钥文件里包含密码)。为每一方创建一对私钥和公钥,然后用接收方的公钥来加密信息,再用发送方的私钥来签名。接收方会用发送方的公钥来检查签名,并用自己的私钥来解密信息。私钥可以用密码保护,但如果你确定你的环境是安全的,也可以不设置密码。

撰写回答