我一直在探索 Python 可以使用哪些加密模块,我发现了 3 个:ezPyCrypt、yawPyCrypt 和 KeyCzar(它们实际上支持几种语言,但其中包括 Python).前两个依赖于 PyCrypto 模块.
有没有我错过的选择?在易用性和功能方面是否有明确的领先者,或者它只是归结为一个人的舒适程度?
我目前倾向于 KeyCzar,ezPyCrypt 紧随其后.
我将使用该库进行数字签名签名和验证,并可能用于创建密钥(尽管如果我必须为该功能调用其他东西,我不会哭).
我正在使用 Python 3.x 并且可以访问 GPG.
如果你在一个包含 GnuPG 和 Python >= 2.4 的环境中,那么你也可以考虑一个工具,比如 python-gnupg.(免责声明:我是这个项目的维护者.)它将繁重的工作交给 gpg,并提供了一个相当简单的 API.
API 概览:
<上一页>>>> 导入 gnupg>>> gpg = gnupg.GPG(gnupghome='/path/to/keyring/directory')>>> gpg.list_keys()[{...'指纹': 'F819EE7705497D73E3CCEE65197D5DAC68F1AAB2','keyid': '197D5DAC68F1AAB2',长度":1024",类型":酒吧",'uids': ['', 'Gary Gross (A test user)']},{...'指纹': '37F24DD4B918CC264D4F31D60C5FEFA7A921FC4A','keyid': '0C5FEFA7A921FC4A',长度":1024",...'uids': ['', 'Danny Davis(测试用户)']}]>>> encrypted = gpg.encrypt("Hello, world!", ['0C5FEFA7A921FC4A'])>>> str(加密)'-----BEGIN PGP MESSAGE----- 版本:GnuPG v1.4.9 (GNU/Linux) hQIOA/6NHMDTXUwcEAf...-----结束 PGP 消息----- '>>> 解密 = gpg.decrypt(str(encrypted), passphrase='secret')>>> str(解密)'你好世界!'>>> signed = gpg.sign("再见,世界!", passphrase='secret')>>> 已验证 = 已验证 = gpg.verify(str(signed))>>> 如果已验证,则打印已验证",否则未验证"已验证"I've been exploring what cryptographic modules are available to Python, and I've found 3: ezPyCrypt, yawPyCrypt and KeyCzar (which actually supports a few languages, but Python is included amongst them). The first two rely on the PyCrypto module.
Are there choices I am missing? Is there a clear front-runner for ease and features or does it simply come down to a manner of one's comfort level?
I'm currently leaning towards KeyCzar, with ezPyCrypt close behind.
I would be using the library for digital signature signing and verification, and potentially for key creation (although I won't cry if I have to make a call to something else for that functionality).
I am using Python 3.x and have access to GPG.
If you are in an environment which includes GnuPG and Python >= 2.4, then you could also consider a tool such as python-gnupg. (Disclaimer: I'm the maintainer of this project.) It leaves the heavy lifting to gpg and provides a fairly straightforward API.
Overview of API:
>>> import gnupg
>>> gpg = gnupg.GPG(gnupghome='/path/to/keyring/directory')
>>> gpg.list_keys()
[{
...
'fingerprint': 'F819EE7705497D73E3CCEE65197D5DAC68F1AAB2',
'keyid': '197D5DAC68F1AAB2',
'length': '1024',
'type': 'pub',
'uids': ['', 'Gary Gross (A test user) ']},
{
...
'fingerprint': '37F24DD4B918CC264D4F31D60C5FEFA7A921FC4A',
'keyid': '0C5FEFA7A921FC4A',
'length': '1024',
...
'uids': ['', 'Danny Davis (A test user) ']}]
>>> encrypted = gpg.encrypt("Hello, world!", ['0C5FEFA7A921FC4A'])
>>> str(encrypted)
'-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.9 (GNU/Linux)
hQIOA/6NHMDTXUwcEAf
...
-----END PGP MESSAGE-----
'
>>> decrypted = gpg.decrypt(str(encrypted), passphrase='secret')
>>> str(decrypted)
'Hello, world!'
>>> signed = gpg.sign("Goodbye, world!", passphrase='secret')
>>> verified = verified = gpg.verify(str(signed))
>>> print "Verified" if verified else "Not verified"
'Verified'
这篇关于推荐的 Python 加密模块?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
如何在python中的感兴趣区域周围绘制一个矩形How to draw a rectangle around a region of interest in python(如何在python中的感兴趣区域周围绘制一个矩形)
如何使用 OpenCV 检测和跟踪人员?How can I detect and track people using OpenCV?(如何使用 OpenCV 检测和跟踪人员?)
如何在图像的多个矩形边界框中应用阈值?How to apply threshold within multiple rectangular bounding boxes in an image?(如何在图像的多个矩形边界框中应用阈值?)
如何下载 Coco Dataset 的特定部分?How can I download a specific part of Coco Dataset?(如何下载 Coco Dataset 的特定部分?)
根据文本方向检测图像方向角度Detect image orientation angle based on text direction(根据文本方向检测图像方向角度)
使用 Opencv 检测图像中矩形的中心和角度Detect centre and angle of rectangles in an image using Opencv(使用 Opencv 检测图像中矩形的中心和角度)