一、安装必要的库文件
1.window下安装pycryptodemo,linux下安装pycrypto
二、开始conding
先定义一些帮助函数
#生成唯一文件名
def get_unique_filename(file):
md5 = hashlib.md5()
md5.update(file)
return md5.hexdigest()
#获取到文件目录
def get_path_dir(path):
pos = path.rfind('/')
return path[:pos + 1]
#做一些格式处理 包括data padding
#因为对称加密对数据长度有特定的规则 自行百度
def get_context_block(data, filename):
dl = len(data) + len(filename) + 8
need = KEY_LEN - (dl % KEY_LEN)
l = need + len(filename) + 8
lfn = len(filename)
add = ''
while need > 0:
add = add + ' '
need = need - 1
#目的是为了记录文件名 为解密的时候还原源文件名
extra = '%4d%s%s%4d'%(lfn, filename, add, l)
return data + extra
然后是加密解密函数
def encrypt(file, key):
with open(file, 'rb') as f:
data = f.read()
path = get_path_dir(file)
data = g