最近遇到python下MD5和AES加密的问题,这里简单记一下:
MD5字符串加密:
#给一个字符串MD5加密
def MD5Encrypt(str):
import hashlib
m = hashlib.md5()
m.update(str)
return m.hexdigest()
AES加密,ECB模式PKS7:
#有密码的AES加密
def Encrypt(toEncrypt, key):
import base64
from Crypto.Cipher import AES
from Crypto import Random
toEncrypt = toEncrypt.encode("utf8")#转换为UTF8编码
key = key.encode("utf8")
bs = AES.block_size
pad = lambda s: s + (bs - len(s) % bs) * chr(bs - len(s) % bs)#PKS7
iv = Random.new().read(bs)
cipher = AES.new(key, AES.MODE_ECB, iv)#ECB模式
resData1 = cipher.encrypt(pad(toEncrypt))
resData2 = resData1.encode('hex')#转为字符串
resData3 = resData2.upper()#全部小写
return resData3
值得注意的是,在这里安装pycrypto时,出现vcvarsall.bat找不到的问题,查找了很久最终找到VCForPython27.msi可以彻底解决。