今天这个批量加解密很简单,和上一个【软件加密】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做一个【批量加密解密】软件,让你的文件有程序加密保护,在也不怕别人乱翻你的东西了相关推荐

  1. 用python做一个简单GUI小软件

    用python做一个简单软件 前言 这是一个课设,用python做一个扫描王软件 我主要做的GUI部分,记录分享一下.也是第一次用python做小软件,python的方便果然是名不虚传 遇到问题 1. ...

  2. python小软件实例教程_【趣味案例】用Python做一个时光回忆录小软件,女朋友当场流泪说非我不嫁!...

    "时光回忆录",主要分为以下四部分,登录界面的设计,倒数日模块,照片模块以及甜言蜜语模块. 登录界面 因为照片,情话这种较为隐私的东西,我决定设计一定的登录门槛.但是与此同时,我给 ...

  3. 使用WPF开发文件加密解密软件

    应用场景 在很多情况下,我们希望对一些比较私密的文件进行加密,当自己需要查看的时候,再解密出来.因此,今天与大家分享一款自己以前用WPF开发的文件加密解密软件. 准备工作 开发环境:VisualStu ...

  4. 用Python做一个“以图搜番“的应用程序,再也不用愁动漫图片的出处了!

    文章目录 前言 PyQt5界面设计 使用Qt Designer绘制界面 视频部件插入小技巧 解码器下载 功能实现 trace.moe API介绍与视频 使用Nuitka打包成exe文件 前言 喜欢看动 ...

  5. python可以做动漫吗_用Python做一个以图搜番的应用程序,再也不用愁动漫图片的出处了!...

    前言 喜欢看动漫的朋友们大概都能体会到一个难受的事情,就是在论坛或者群聊里面看到一张动漫截图,很想知道它的出处,但百度搜了一圈却也没有一个可靠结果,就很郁闷.今天就来带大家用Python做一个简单的& ...

  6. 用python写搜索引擎_用python做一个搜索引擎(Pylucene)的实例代码

    1.什么是搜索引擎? 搜索引擎是"对网络信息资源进行搜集整理并提供信息查询服务的系统,包括信息搜集.信息整理和用户查询三部分".如图1是搜索引擎的一般结构,信息搜集模块从网络采集信 ...

  7. 在哪里能收到python实例代码-用python做一个搜索引擎(Pylucene)的实例代码

    1.什么是搜索引擎? 搜索引擎是"对网络信息资源进行搜集整理并提供信息查询服务的系统,包括信息搜集.信息整理和用户查询三部分".如图1是搜索引擎的一般结构,信息搜集模块从网络采集信 ...

  8. python写520_用Python做一个520表白神器,值得收藏

    本文最后给出了打包好的软件,无需安装Python环境和各种依赖,直接下载软件,解压后,双击exe文件即可使用. 先来看一下具体的效果. 运行程序. 用Python做一个520表白神器,值得收藏 点击「 ...

  9. python自己做个定时器_技术图文:如何利用 Python 做一个简单的定时器类?

    原标题:技术图文:如何利用 Python 做一个简单的定时器类? 背景 今天在B站上看有关 Python 最火的一个教学视频 -- "零基础入门学习 Python",这也是我们 P ...

最新文章

  1. hadoop的mapReduce历史服务配置及查看
  2. CSS导航条菜单:带小三角形
  3. 安装Ruby、Sass在WebStrom添加Watcher实现编辑scss文件时自动生成.map和压缩后的.css文件...
  4. 如何转载CSDN的博客
  5. python webviewer爬虫_爬虫再也不怕检测浏览器环境了
  6. 一张图学会数据库迁云最佳路径
  7. 图像处理中各种边缘检测的微分算子简单比较(Sobel,Robert, Prewitt,Laplacian,Canny) 【转】
  8. 【报告分享】2021新茶饮研究报告.pdf(附下载链接)
  9. 在CentOS/RHEL 7.X安装 EPEL repo 的方法 1
  10. 【微信公众号开发】根据openId群发消息
  11. Hive查询各自区组的money排名前十的账号
  12. (转)style,currentStyle,getComputedStyle的区别和用法
  13. 计算机将图像数字化的原理,图像数字化
  14. 计算机毕业设计springboot微信小程序购物商城源码
  15. 山东理工——1019
  16. 计算机开机其他用户,Win8.1系统下取消开机显示“其他用户”的方法
  17. 专为《巫师3》打造 次世代RedEngine 3引擎公布
  18. Paradigm Shifts in Kernel Programming 内核编程的范式转移
  19. English 动词篇
  20. Cannot resolve method ‘subscribe(anonymous io.reactivex.Observer<xxx>)‘的解决方案

热门文章

  1. 《生物信息学:导论与方法》--生物信息数据库及软件资源--听课笔记(二十二)
  2. 数据中心机柜的选择与应用
  3. 应届毕业生面试自我介绍范文(希望对今年新找工作的同学有用!)
  4. 微信小程序---实现手机号发送验证码登录
  5. Image Processing and Analysis_8_Edge Detection:Finding Edges and Lines in Images by Canny——1983...
  6. CSS网页设计教程:表单Button的Outl…
  7. 黑金花大理石_请问黑金花大理石是什么样的,有哪些特点?
  8. Git - Smart Checkout、Force Checkout 区别
  9. C++程序设计课程设计(研究生初试录取系统)
  10. PAT_乙级1016