python的加密模块。
pycrypto的Python项目详细描述
python密码工具包(pycrypto)
这是两个安全哈希函数(如sha256和 RIPEMD160)和各种加密算法(AES、DES、RSA、Elgamal, 等等)。这个包的结构使添加新模块变得容易。 本节基本完成,软件接口将 几乎肯定不会在未来以不相容的方式改变;全部 剩下要做的是修复出现的任何错误。如果你 遇到错误,请在启动板错误跟踪器中报告,网址为
https://launchpad.net/products/pycrypto/+bugs
SHA256模块的使用示例如下:
>>> from Crypto.Hash import SHA256 >>> hash = SHA256.new() >>> hash.update('message') >>> hash.digest() '\xabS\n\x13\xe4Y\x14\x98+y\xf9\xb7\xe3\xfb\xa9\x94\xcf\xd1\xf3\xfb"\xf7\x1c\xea\x1a\xfb\xf0+F\x0cm\x1d'
加密算法(本例中为aes)的一个示例用法是:
>>> from Crypto.Cipher import AES >>> obj = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456') >>> message = "The answer is no" >>> ciphertext = obj.encrypt(message) >>> ciphertext '\xd6\x83\x8dd!VT\x92\xaa`A\x05\xe0\x9b\x8b\xf1' >>> obj2 = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456') >>> obj2.decrypt(ciphertext) 'The answer is no'
这些模块的一个可能的应用是编写安全的 管理工具。另一个应用程序正在编写守护进程和 服务器。客户机和服务器可以加密正在交换的数据,并且 相互验证自己;守护进程可以为 增加了安全性。python还为 密码算法的原型和实验;谢谢 对于任意长度的整数,公钥算法很容易 实施。
从pycrypto 2.1.0开始,pycrypto提供了一个易于使用的随机数 发电机:
>>> from Crypto import Random >>> rndfile = Random.new() >>> rndfile.read(16) '\xf7.\x838{\x85\xa0\xd3>#}\xc6\xc2jJU'
python的标准“random”模块的一个更强大的版本也是 提供:
>>> from Crypto.Random import random >>> random.choice(['dogs', 'cats', 'bears']) 'bears'
注意:要使随机数生成器正常工作,必须 在之后的父进程和子进程中调用random.atfork() 使用os.fork()
安装
pycrypto是使用python 2.1到3.3版本编写和测试的。Python 不支持1.5.2。
模块使用distutils打包,因此您可以简单地运行 “python setup.py build”生成包,以及“python setup.py build” 安装”来安装它。
如果setup.py脚本因distutilsplatformerror而崩溃 抱怨文件/usr/lib/python2.2/config/makefile没有 “存在”,这意味着编译新Python所需的文件。 系统上未安装模块。红帽用户经常遇到 这是因为他们没有安装python2 devel rpm。修复 只是简单地安装必要的RPM。在debian/ubuntu上,您需要 python开发包。
要验证一切正常,请运行“python setup.py test”。它 将测试所有加密模块,跳过那些不是 可用。如果测试脚本在您的计算机上报告错误, 请使用bug跟踪器(上面给出的url)报告bug。如果 可能的话,找到这个错误并提供一个修补程序, 如果你能在 http://www.pycrypto.org/submission-requirements/。
例如,可以只测试单个子包或单个模块 当你调查为什么某些测试失败并且不想运行整个 每次套房。使用“python setup.py test–module=name”,其中“name” 是子包(密码、公钥等)或模块(cipher.des, 公钥rsa等)。 要进一步降低测试覆盖率,还可以通过选项“–跳过慢速测试”。
在的site packages目录下安装包 您的python安装,运行“python setup.py install”。
如果对此有任何评论、更正或改进 包裹,请向我们的邮件列表报告,可通过 pycrypto网站:
http://www.pycrypto.org/https://www.dlitz.net/software/pycrypto/