pyDes vs pycrypto

2480 ワード

最近会社のインタフェースは需要があって、データの伝送過程は暗号化を必要として、暗号化のアルゴリズムの中で1つはdes暗号化で、テスト条件を満たすために、模擬復号と暗号化の過程が必要で、データを復元することができて、それによって各値が標準かどうかを検査することができます.
    会社のプログラムはjavaを使って実现して、ちょうどアナログの復号(pyDesを采用します)を完成する时、javaは1 Mのデータを復号して1.2秒を必要として、pythonは同じファイルを復号して30秒を必要として、pythonが遅すぎると感じます.
    以下、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は私を半年も穴をあけて、私はあなたを覚えています...