pyDes vs pycrypto

最近公司接口有个需求, 数据传输过程需要加密, 加密的算法中有一项是des加密, 为了满足测试条件, 需要模拟解密及加密过程, 能够将数据还原, 从而校验每个值是否标准.

公司的程序是使用java来实现的, 刚开始完成模拟解码(采用pyDes)的时候, java解码1M的数据需要1.2秒, python解码相同文件需要30秒, 感觉python太慢了. 后来采用pycrypto来对相同数据进行解码, 只需要0.4秒!!!

下面是pyDes的样例代码及运行时间, 加密耗时20秒钟, 解密耗时19秒钟.

[[email protected] ~]# vim 03_des.py
# -.- coding:utf-8 -.-
__author__ = ‘root‘

import pyDes
import logging

# 定义日志输出格式.
logging.basicConfig(level=logging.DEBUG, datefmt=‘%Y-%m-%d %I:%M:%S‘,
                    format=‘%(asctime)s,%(msecs)d %(levelname)s: %(message)s‘,)

key = "PythonLi"
iv = "12345678"
content = "今天是个好日子"*10000
generateKey = pyDes.des(key=key, mode=pyDes.CBC, IV=iv, pad=None, padmode=pyDes.PAD_PKCS5)

logging.debug("开始加密")
encryptContent = generateKey.encrypt(content)
logging.debug("加密结束")

logging.debug("-"*30+"分割线"+"-"*30)

logging.debug("开始解密")
generateKey.decrypt(encryptContent)
logging.debug("解密结束")

[[email protected] ~]# python 03_des.py
2014-11-20 12:44:20,93 DEBUG: 开始加密        
2014-11-20 12:44:40,48 DEBUG: 加密结束
2014-11-20 12:44:40,48 DEBUG: ------------------------------分割线------------------------------
2014-11-20 12:44:40,48 DEBUG: 开始解密
2014-11-20 12:44:59,97 DEBUG: 解密结束

下面是pycrypto的样例代码及运行时间, 加密耗时0.002秒, 解密耗时0.004秒

[[email protected] ~]# vim 03_pycrypto.py
# -.- coding:utf-8 -.-
__author__ = ‘root‘

import logging
from Crypto.Cipher import DES

# 定义日志输出格式.
logging.basicConfig(level=logging.DEBUG, datefmt=‘%Y-%m-%d %I:%M:%S‘,
                    format=‘%(asctime)s,%(msecs)d %(levelname)s: %(message)s‘,)

key = "PythonLi"
iv = "12345678"
content = "今天是个好日子"*10000
generateKey = DES.new(key, DES.MODE_CBC, iv)

logging.debug("开始加密")
encryptContent = generateKey.encrypt(content)
logging.debug("加密结束")

logging.debug("-"*30+"分割线"+"-"*30)

logging.debug("开始解密")
generateKey.decrypt(encryptContent)
logging.debug("解密结束")

[[email protected] ~]# python 03_pycrypto.py
2014-11-20 12:49:32,882 DEBUG: 开始加密
2014-11-20 12:49:32,886 DEBUG: 加密结束
2014-11-20 12:49:32,886 DEBUG: ------------------------------分割线------------------------------
2014-11-20 12:49:32,886 DEBUG: 开始解密
2014-11-20 12:49:32,890 DEBUG: 解密结束

最终结论就是,pyDes坑了我半年,我算是记住你了...

时间: 2024-10-07 10:47:21

pyDes vs pycrypto的相关文章

[加密]在AES的CBC模式下 pydes vs crypto

因为项目中有个非常重要的功能,并发量和访问量都很大,里面使用了pydes,总感觉它的性能不太好,从别人的对比来看,性能差距应该挺大,但还是自己测试下吧. 自己测试,心里更有数. 环境 macos 10.10.5 python2.7 pyDes (2.0.1) 纯python pycrypto (2.6.1) 底层依赖C 测试 由于加密,解密方式很多,这里只测试一种,大概看下在完成相似功能性能差别就好(对于加密算法的基本原理还要学习) pydes代码 #coding:utf-8 #file:pyd

Windows7 Python-3.6 安装PyCrypto(pycrypto 2.6.1)出现错误以及解决方法

今天准备在Windows系统上基于python3.6安装一个pycrypto 2.6.1模块,很不幸的报了一堆错误,如下所示: running install running build running build_py running build_ext warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath. building 'Crypto.Random.OSRNG.winrandom'

pyDes库 实现python的des加密

下载及简介地址:https://twhiteman.netfirms.com/des.html 如需要在python中使用des加密,可以直接使用pyDes库加密,该库提供了CBC和ECB两种加密方式. 1.Windows下安装 下载后pyDes-x.x.x.zip并解压后,里面有setup.py文件,使用命令 setup.py --help可查看详细使用. 你可以使用命令 python setup.py install 命令安装,也可以直接将压缩包内的pyDes.py拷贝到本地的python

pip 安装pycrypto 报错

pip 安装pycrypto 报src/MD2.c:31:20: error: Python.h: No such file or directory 错误解决 gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -f

pyCrypto python 3.5--转

原文地址:https://gxnotes.com/article/198426.html 问题描述 我发现一些PyCrypto安装程序为Python 3.3和3.4,但没有任何Python 3.5. 当我尝试使用pip install安装PyCrypton时,它说: warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath. 有没有办法在Windows 10中的Python 3.5上安装PyCr

转:python安装pycrypto

from: http://ljhzzyx.blog.163.com/blog/static/3838031220136592824697/   在windows下用一下开源工具就是悲催,如题python安装pycrypto在windows也是很麻烦.一般在官方网站下载: https://www.dlitz.net/software/pycrypto/ 然后使用命令就可以安装成功了: python setup.py build python setup.py install 但是在windows下

杂项之python利用pycrypto实现RSA

杂项之python利用pycrypto实现RSA 本节内容 pycrypto模块简介 RSA的公私钥生成 RSA使用公钥加密数据 RSA使用私钥解密密文 破解博客园登陆 pycrypto模块简介 pycrypto模块是python中用来处理加密解密等信息安全相关的一个很重要模块. 该模块支持的加密方式: 对称加密方式: AES DES ARC4 散列值计算: MD5 SHA HMAC 公钥加密和签名: RSA DSA 基本上常见的关于信息安全类的算法都可以支持,所以,这是一个很强大的模块. 安装

How to compile pycrypto 2.4.1 (python 3.2.2 for Windows 7 x64)

How to compile pycrypto 2.4.1 (python 3.2.2 for Windows 7 x64) Nov 10 Posted by alesk This note is a variation of note that talks about compiling cx_Oracle module for python 3.2 (64-bit), but this time around I wanted to try out pycrypto module v2.4.

Pycrypto实现AES加解密

JS实现AES过程. function getAesString(str,keyObj) { var lengthKeyObj = keyObj||get_rand_key(0); var key = CryptoJS.enc.Hex.parse(lengthKeyObj.rand_key); var iv = CryptoJS.enc.Latin1.parse("1234567890abcdef"); var encrypted = CryptoJS.AES.encrypt(str,