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/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javasocket:BufferedOutputStream还是just OutputStream?   java确保BlockedQueue中的容量   java异常多部分/formdata请求失败。读取超时   java奇怪的日期字符串格式   java为什么线程池中的所有线程都不处理我的排队任务?   java如何从字符串列表/Url设置为墙纸   实现内联接口时java ClassNotFoundException   java打开一个socket需要多少cpu   java窗口/linux路径组件   使用十六进制值作为方法参数时的java NullPointerException   java如何使此内容可用于“另存为”?   java Android onTouchListener,更容易实现   ProgressDialog 安卓 studio的java模糊背景   运行TestNG时发生java错误无法通过查找找到应用程序名称   java指定JVM Eclipse Mac OS X   用于TracePoint2D的java jChart2D颜色   使用管理员权限启动独立服务器时,java客户端转换失败   处理Java时出错:不检查方法调用中的不可能状态   java在没有浏览器的服务器上打印html文件