python对称加密

本文介绍了如何在Python中进行对称加密,包括安装必要的库、定义加密解密函数、使用多线程优化加密解密速度。通过测试,发现线程数等于CPU核心数的两倍时效率最佳,同时提到了加密后文件大小增加以及解决方法。
摘要由CSDN通过智能技术生成

一、安装必要的库文件

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值