python+加密:使用公钥加密会话密钥
我想使用公钥加密会话密钥。 PGP 软件如何做到这一点? 有人可以指定Python中加密的过程或函数吗?
I want to encrypt the session key using the public key. How does the PGP software do this?
Can somebody specify the procedure or function of encryption in Python?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
还有 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 对象。
另外,如果安全确实是一个问题,特别是在多用户或仅部分受信任的计算机上,请务必非常非常小心地获取会话密钥的值。
There's also the PyCrypto module that looks exactly like what you are looking for: http://www.dlitz.net/software/pycrypto/ the API docs are here: http://www.dlitz.net/software/pycrypto/apidoc/ and some nice docs with basic examples of encrypting/decrypting here: http://www.dlitz.net/software/pycrypto/doc/.
I'll confess I haven't used this module, but it seems like you would establish a session with a public key, then use that to encrypt/decrypt the channel with a Crypto.PublicKey object. Then do the usual activity of generating a session key, communicating that over whatever channel you have. Finally, switch the channel to a Crypto.Cipher object using the session key.
Also, be sure to be very, very careful about how you obtain the value for your session key if security is a real concern, particularly on multiuser or only partially trusted machine.
有关基本技术的背景信息,请参阅这篇文章。 这篇文章是关于一般加密的 - 有关从 Python 使用 gpg 的信息,请参阅 这个。
See this post for background information about the basic technology. That post is about encryption in general - for information about using gpg from Python, see this, for example.
请参阅 什么是最好/最容易使用的加密python 中的库,其中提到了 PGP 兼容
解决方案,gpgme。
由于我忽略的原因,没有人在如何做Python中的PGP(生成密钥,加密/解密)提到了gpgme...
See What is the best/easiest to use encryption library in python, which mentions a PGP-compatible
solution, gpgme.
For reasons I ignore, nobody in How to do PGP in Python (generate keys, encrypt/decrypt) mentioned gpgme...