You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

python-gnupg加密输出为ASCII格式而非二进制PGP文件该如何解决?

解决方案

python-gnupg的加密方法默认开启了ASCII装甲输出,你只需要在调用encrypt_file时添加armor=False参数即可输出二进制格式的加密文件。

修改后的加密代码段如下:

with open(LOCALFILE, "rb") as f:
    print("encrypting file")
    status = gpg.encrypt_file(
        f,
        recipients=["Alexander@example.com"], 
        output="agreatfile.txt.pgp", 
        always_trust=True,
        armor=False  # 新增参数,关闭ASCII装甲输出,启用二进制格式
    )
    print('ok: ', status.ok)
    print('status: ', status.status)
    print('stderr: ', status.stderr)

参数说明:

  • armor参数默认值为True,输出带-----BEGIN PGP MESSAGE-----头尾的Base64编码文本格式,适合在邮件、文本通道中传输
  • 设置为False后,会直接输出原始二进制加密内容,在文本编辑器打开会显示为乱码,符合你预期的输出格式

内容的提问来源于stack exchange,提问作者Jacob Steiner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:45:04