【问题标题】:Python encrypt with PGPPython 使用 PGP 加密
【发布时间】:2018-10-05 19:38:55
【问题描述】:

我想用我的数据库中的公共 PGP 密钥加密一个字符串。 到目前为止,我搜索了很多 libsa 和应用程序等,但我在这里根本找不到一个好的工作方式。我不需要任何密钥管理,老实说,在这里不使用任何外部二进制文件会很棒。 我只需要 encrypt 函数将字符串包装为 PGP 加密消息。

这里有人有轻量级的想法吗?

这似乎是一个解决方案: https://github.com/singpolyma/OpenPGP-Python

但它已经很老了。

感谢和亲切的问候

【问题讨论】:

    标签: python public-key-encryption


    【解决方案1】:

    OpenPGP 使用的协议与许多库使用的协议没有什么不同。 如果您只想加密一个字符串,除非您要将字符串存储在某个地方,否则您不必太担心这一点。

    我建议使用 pyAesCrypt 模块,因为它易于阅读,并且使用了更复杂的 Cryptography 模块,这几乎是许多密码库所基于的基础,它也部分用 C 编写。

    【讨论】:

    • 这根本不尊重规范的“作为 PGP 加密消息”部分。 PGP 非常复杂(诚然,这是不使用它的充分理由之一),但这种复杂性是有存在的理由的;真正的竞争对手是更现代的协议,例如 saltpack,旨在以较低的复杂性实现相同的用例,而不是采用其中一个内部组件并单独使用它,而不评估该独立使用是否仍然满足设计目标。
    • 嗨@Charles Duffy,当然PGP 非常复杂,否则它不会是GNU 附带的标准。虽然对于低级项目我不推荐使用它,因为它使事情变得过于复杂,因此我建议使用 pyAesCrypt 模块。
    • 问题在于,大部分复杂性都是有充分理由的——抵抗重放攻击、抵抗试图不匹配不同正确签名的消息组件的攻击等;如果您不分析每种攻击是否适用于您,以及您是否需要 PGP 免费为您提供的相同对策,那么单独使用相同的底层加密并不一定会给您提供相同级别的抗真实性-世界攻击。
    • ...与 PGP 使用的方法相比,有更新、更现代且更好的方法来抵抗其中一些攻击,但如果你只使用 AES,你没有得到他们。
    • @CharlesDuffy 你是绝对正确的,但我建议的原因是因为提出问题的人只想加密一个字符串,如果是我,我想对每个人都使用 OpenPGP字符串我有,以防有很多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    • 2022-06-24
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多