两年前使用python时,碰到2.x下AES加密解密算法代码无法在3.x下顺利运行,花点时间解决了兼容问题,在2.7、3.6、3.7下运行良好。
Linux系统安装依赖库比较简单,Windows下稍嫌繁琐,装完必须的库也可以正常运行。
代码整理如下:
# -*- coding: utf-8 -*-
import base64
import sys
from Crypto import Random
from Crypto.Cipher import AES
# Author: areful
# Date: 2017-07-06
class AESCipher:
def __init__(self, key, iv=Random.new().read(AES.block_size)):
self.key = key
self.iv = iv
self.mode = AES.MODE_CBC
if sys.version > '3':
self.PY3 = True
else:
self.PY3 = False
def encrypt(self, text):
if self.PY3:
return self.encrypt36(text)
else:
return self.encrypt27(text)
def encrypt27(self, text):
cipher = AES.new(self.key, AES.MODE_CBC, self.iv)
bs = AES