pyDes vs pycrypto

    最近公司接口有個需求, 數據傳輸過程需要加密, 加密的算法中有一項是des加密, 爲了滿足測試條件, 需要模擬解密及加密過程, 能夠將數據還原, 從而校驗每個值是否標準.


    公司的程序是使用java來實現的, 剛開始完成模擬解碼(採用pyDes)的時候, java解碼1M的數據需要1.2秒, python解碼相同文件需要30秒, 感覺python太慢了. 後來採用pycrypto來對相同數據進行解碼, 只需要0.4秒!!!


    下面是pyDes的樣例代碼及運行時間, 加密耗時20秒鐘, 解密耗時19秒鐘.

[root@localhost ~]# 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("解密結束")

[root@localhost ~]# 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秒

[root@localhost ~]# 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("解密結束")

[root@localhost ~]# 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坑了我半年,我算是記住你了...


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章