【问题标题】:How to encrypt a file with python but can be decrypted using the shell?如何使用 python 加密文件但可以使用 shell 解密?
【发布时间】:2026-01-15 20:10:02
【问题描述】:

我需要加密一个文件,发送给另一个人,然后他只能使用 shell 解密它。

我一般用openssl命令加密文件:openssl enc -aes-256-cbc -salt -in [filename] -out [file out name] -pass file:[direct path to key file],然后发送文件。

然后其他人将使用openssl 命令再次解密文件:openssl enc -d -aes-256-cbc -in [encrypted file] -out [file out name] -pass file:[direct path to key file]

我会使用os.system 来执行此操作,但我觉得必须有另一种方法来使用 python 加密文件,然后可以在 shell 端解密。

【问题讨论】:

标签: python encryption cryptography openssl


【解决方案1】:

你需要使用openssl吗?

我使用命令行 GnuPG 并且有一个非常好的 Python 库:python-gnupg。它是命令行gpg 的包装器,因此它们的工作原理相同。

您可以使用非对称加密代替密钥文件(我认为它包含密码)。为每个部分创建私钥/公钥对,然后使用收件人公钥加密消息并使用发件人私钥对其进行签名。收件人将使用发件人公钥检查发件人的签名,收件人将使用她的私钥解密消息。私钥可以通过密码保护,但如果您确定您的环境是安全的,您可以使用空密码。

【讨论】:

  • 这会很完美,但是有没有办法将密钥发送给其他人?
  • 我认为您可以使用我在编辑答案中描述的非对称加密。
  • +1 虽然与问题无关,但出于多种操作原因,这比对称加密(您使用openssl 获得的)要好,包括您避免需要共享密钥的事实密钥文件。
最近更新 更多