【发布时间】:2010-11-06 15:57:05
【问题描述】:
我想使用公钥加密会话密钥。 PGP 软件是如何做到这一点的? 有人可以指定Python中加密的过程或功能吗?
【问题讨论】:
-
您确定需要公钥(非对称)加密吗?除了需要在多个站点/应用程序之间公开共享会话密钥的情况外,对称(如 AES 或 Serpent)加密应该更好。
标签: python encryption public-key
我想使用公钥加密会话密钥。 PGP 软件是如何做到这一点的? 有人可以指定Python中加密的过程或功能吗?
【问题讨论】:
标签: python encryption public-key
参见What is the best/easiest to use encryption library in python,其中提到了PGP-compatible solution、gpgme。
由于我忽略的原因,How to do PGP in Python (generate keys, encrypt/decrypt) 中没有人提到 gpgme...
【讨论】:
还有看起来与您正在寻找的完全一样的 PyCrypto 模块:http://www.dlitz.net/software/pycrypto/ API 文档在这里:http://www.dlitz.net/software/pycrypto/apidoc/ 和一些不错的文档,其中包含加密/解密的基本示例:http://www.dlitz.net/software/pycrypto/doc/。
我承认我没有使用过这个模块,但看起来你会用一个公钥建立一个会话,然后用它来加密/解密带有 Crypto.PublicKey 对象的通道。然后进行生成会话密钥的常规活动,通过您拥有的任何渠道进行通信。最后,使用会话密钥将通道切换到 Crypto.Cipher 对象。
此外,如果安全是一个真正的问题,特别是在多用户或仅部分受信任的机器上,请务必非常非常小心地获取会话密钥的值。
【讨论】: