python做一个【批量加密解密】软件,让你的文件有程序加密保护,在也不怕别人乱翻你的东西了
今天这个批量加解密很简单,和上一个【软件加密】python制作一个超强的加密软件_₰₯₮ 的博客-CSDN博客
文章结合了一下,然后优化了一下
循环文件夹的所有文件,然后捉个进行加解密
def iterbrowse(path):for home, dirs, files in os.walk(path):for filename in files:yield os.path.join(home, filename)for fullname in iterbrowse(DATA_1):NAME = fullnameNAME = NAME.replace("\\", "/") # 替换
这个用于检测是否是已经被加密过的文件,是的话则执行解密,不是的话则执行加密
if NAME.split(".")[-1][-10:] == 'DATAAES-AI': # 检测是否是已经加密后的文件,用于检测后缀的DATAAES-AI#解密F = NAME.split(os.path.sep)[0].replace("DATAAES-AI", "") #去除DATAAES-AIprint(f'[-.·J·.-]: ',NAME, '\t\t- - - - 解密成功!!!')else:#加密F = NAME.split(os.path.sep)[0]+"DATAAES-AI"print(f'[+·J·+]: ', NAME, '\t\t+ + + + 加密成功!!!')
插入一段检测文件大小,可以进行加密大文件和小文件
def get_FileSize(filePath):fsize = os.path.getsize(filePath)fsize = fsize / float(1024 * 1024)size = "%.0f" % fsize
其实原本我又做了一个是双重密码组合的加解密程序,只是没有在写文章,因为太过简单,没必要,只不过是在原基础上增加了一个密钥,就是再次将MD5值扩展了一个层级。
然后今天做的这个很好用啊,我给你们演示一下
运行程序后将要加密的文件夹路径输入进去,这里因为要批量进行加解密,怕文件过大加载会太慢,所有加入了内存检测,我这里输入5MB,意思就是只加密5MB内的程序,超过的不进行操作,然后输入密码,密码支持:中文、英文、数字、字符串,随便输一下,然后点回车
可以看到已经开始加密了,但是要记住,这是加密不是解密,遇到文件内存大的,需要一点时间,不会太慢,还有,在程序加密或解密的时候尽量不要去停止,因为会丢失数据。
如果你们很介意速度慢,可以自行将内存填小,这样速度就快了
加密完成了
我们来进行解密一下,由于我截屏太快,有两个文件没有反应过来
可以看到都进行解密完成了
废话不多说,完整代码:
import os
import hashlib
import base64
import timedef mine():print("-------------------------------------批量加密工具-------------------------------------")print("关注博主不迷路!!!\nhttps://jiangongfang.blog.csdn.net/\nhttps://blog.51cto.com/u_15449377")print("使用告知:\n【加密后的文件后缀会多出DATAAES-AI,是为了方便软件检测,请勿乱改加密后的后缀名】")print("【要加密或解密的文件命名不可有“./\”字符,否则会出错】")print("【此程序的密码可以使用中文、英文、字符串、数字进行加密,可使用中文和中文字符串】")print("【重点要注意::程序一旦开始加密或解密,中途不可退出,否则会丢失数据,直到运行完毕方可退出】")print("-------------------------------------批量加密工具-------------------------------------\n")DATA_1 = input('请输入要加密或解密的文件路径(不含文件):')if DATA_1 == '':print('程序不得为空,请重新输入!!!')time.sleep(2)os.system('cls')mine()else:passDATA_1 = DATA_1.replace("\\", "/") # 替换if os.path.isdir(DATA_1) == True:passelse:print('路径错误或文件夹不存在,请重新输入!!!')time.sleep(2)os.system('cls')mine()str = input('请输入最高可加密的内存MB:')# 判断是否填写if int(str) == '':print('错误,请重新输入!!!')time.sleep(2)os.system('cls')mine()else:passPassWord_1 = input('请输入要加密或解密的密码(密码):')# 判断是否填写if PassWord_1 == '':print('密码不得为空,请重新输入!!!')time.sleep(2)os.system('cls')mine()else:passdef iterbrowse(path):for home, dirs, files in os.walk(path):for filename in files:yield os.path.join(home, filename)for fullname in iterbrowse(DATA_1):NAME = fullnameNAME = NAME.replace("\\", "/") # 替换def get_FileSize(filePath):fsize = os.path.getsize(filePath)fsize = fsize / float(1024 * 1024)size = "%.0f" % fsizeif int(size) >= int(str):print('[-!-]: ',NAME, '\t- - - - 内存过大!!!')passelse:#写入的文件if NAME.split(".")[-1][-10:] == 'DATAAES-AI': # 检测是否是已经加密后的文件,用于检测后缀的DATAAES-AI#解密F = NAME.split(os.path.sep)[0].replace("DATAAES-AI", "") #去除DATAAES-AIprint(f'[-.·J·.-]: ',NAME, '\t- - - - 解密成功!!!')else:#加密F = NAME.split(os.path.sep)[0]+"DATAAES-AI"print(f'[+·J·+]: ', NAME, '\t+ + + + 加密成功!!!')a = open(NAME, "rb") #读取文件b = open(F, "wb") #写入文件#使用MD5进行加密(双层加密)hl = hashlib.md5()hl.update(PassWord_1.encode(encoding='utf-8'))password_list = hl.hexdigest()#使用MD5进行加密(双层加密)hl.update(password_list.encode(encoding='utf-8'))password_list2 = hl.hexdigest()password_data = password_list+password_list2#加密def Encryption_and_decryption():count = 0 #索引for now in a:for nowByte in now:newByte = nowByte ^ ord(password_data[count % len(password_data)]) #循环遍历出密码的ord值,单个循环count += 1b.write(bytes([newByte])) #转换Encryption_and_decryption()a.close()b.close()os.remove(f'{NAME}')get_FileSize(NAME)print('操作完成!!!')print('正在返回!!!')time.sleep(2)os.system('cls')mine()
mine()
python做一个【批量加密解密】软件,让你的文件有程序加密保护,在也不怕别人乱翻你的东西了相关推荐
- 用python做一个简单GUI小软件
用python做一个简单软件 前言 这是一个课设,用python做一个扫描王软件 我主要做的GUI部分,记录分享一下.也是第一次用python做小软件,python的方便果然是名不虚传 遇到问题 1. ...
- python小软件实例教程_【趣味案例】用Python做一个时光回忆录小软件,女朋友当场流泪说非我不嫁!...
"时光回忆录",主要分为以下四部分,登录界面的设计,倒数日模块,照片模块以及甜言蜜语模块. 登录界面 因为照片,情话这种较为隐私的东西,我决定设计一定的登录门槛.但是与此同时,我给 ...
- 使用WPF开发文件加密解密软件
应用场景 在很多情况下,我们希望对一些比较私密的文件进行加密,当自己需要查看的时候,再解密出来.因此,今天与大家分享一款自己以前用WPF开发的文件加密解密软件. 准备工作 开发环境:VisualStu ...
- 用Python做一个“以图搜番“的应用程序,再也不用愁动漫图片的出处了!
文章目录 前言 PyQt5界面设计 使用Qt Designer绘制界面 视频部件插入小技巧 解码器下载 功能实现 trace.moe API介绍与视频 使用Nuitka打包成exe文件 前言 喜欢看动 ...
- python可以做动漫吗_用Python做一个以图搜番的应用程序,再也不用愁动漫图片的出处了!...
前言 喜欢看动漫的朋友们大概都能体会到一个难受的事情,就是在论坛或者群聊里面看到一张动漫截图,很想知道它的出处,但百度搜了一圈却也没有一个可靠结果,就很郁闷.今天就来带大家用Python做一个简单的& ...
- 用python写搜索引擎_用python做一个搜索引擎(Pylucene)的实例代码
1.什么是搜索引擎? 搜索引擎是"对网络信息资源进行搜集整理并提供信息查询服务的系统,包括信息搜集.信息整理和用户查询三部分".如图1是搜索引擎的一般结构,信息搜集模块从网络采集信 ...
- 在哪里能收到python实例代码-用python做一个搜索引擎(Pylucene)的实例代码
1.什么是搜索引擎? 搜索引擎是"对网络信息资源进行搜集整理并提供信息查询服务的系统,包括信息搜集.信息整理和用户查询三部分".如图1是搜索引擎的一般结构,信息搜集模块从网络采集信 ...
- python写520_用Python做一个520表白神器,值得收藏
本文最后给出了打包好的软件,无需安装Python环境和各种依赖,直接下载软件,解压后,双击exe文件即可使用. 先来看一下具体的效果. 运行程序. 用Python做一个520表白神器,值得收藏 点击「 ...
- python自己做个定时器_技术图文:如何利用 Python 做一个简单的定时器类?
原标题:技术图文:如何利用 Python 做一个简单的定时器类? 背景 今天在B站上看有关 Python 最火的一个教学视频 -- "零基础入门学习 Python",这也是我们 P ...
最新文章
- hadoop的mapReduce历史服务配置及查看
- CSS导航条菜单:带小三角形
- 安装Ruby、Sass在WebStrom添加Watcher实现编辑scss文件时自动生成.map和压缩后的.css文件...
- 如何转载CSDN的博客
- python webviewer爬虫_爬虫再也不怕检测浏览器环境了
- 一张图学会数据库迁云最佳路径
- 图像处理中各种边缘检测的微分算子简单比较(Sobel,Robert, Prewitt,Laplacian,Canny) 【转】
- 【报告分享】2021新茶饮研究报告.pdf(附下载链接)
- 在CentOS/RHEL 7.X安装 EPEL repo 的方法 1
- 【微信公众号开发】根据openId群发消息
- Hive查询各自区组的money排名前十的账号
- (转)style,currentStyle,getComputedStyle的区别和用法
- 计算机将图像数字化的原理,图像数字化
- 计算机毕业设计springboot微信小程序购物商城源码
- 山东理工——1019
- 计算机开机其他用户,Win8.1系统下取消开机显示“其他用户”的方法
- 专为《巫师3》打造 次世代RedEngine 3引擎公布
- Paradigm Shifts in Kernel Programming 内核编程的范式转移
- English 动词篇
- Cannot resolve method ‘subscribe(anonymous io.reactivex.Observer<xxx>)‘的解决方案
热门文章
- 《生物信息学:导论与方法》--生物信息数据库及软件资源--听课笔记(二十二)
- 数据中心机柜的选择与应用
- 应届毕业生面试自我介绍范文(希望对今年新找工作的同学有用!)
- 微信小程序---实现手机号发送验证码登录
- Image Processing and Analysis_8_Edge Detection:Finding Edges and Lines in Images by Canny——1983...
- CSS网页设计教程:表单Button的Outl…
- 黑金花大理石_请问黑金花大理石是什么样的,有哪些特点?
- Git - Smart Checkout、Force Checkout 区别
- C++程序设计课程设计(研究生初试录取系统)
- PAT_乙级1016