python脚本简单实现对压缩文件是否加密的检测
因为业务需求,需要编写一个脚本实现对压缩文件加密的检测,调研了下,将自己的思路分享下
常见的压缩文件格式有 zip, gz, tar, rar#
它们的压缩加密方式不同,分别处理这四种格式
对于zip格式#
zip的加密主要是对加密标志位的检测,如果是奇数则为加密,如果是偶数则没有加密。可以通过python标准库的zipfile来实现
def check_zip(file: str) -> bool:
'''
name:
des: 检测zip格式压缩保是否加密
param {传入的文件名}
return {True:文件加密 False:文件没加密}
'''
zf = zipfile.ZipFile(file)
for zinfo in zf.infolist():
is_encrypted = zinfo.flag_bits & 0x1
if is_encrypted:
return True
else:
return False
对于rar格式#
加密原理可以百度,python标准库里没有检测rar的库,需要pip install rarfile
def check_rar(file: str) -> bool:
'''
name:
des: 检测rar格式压缩包是否加密
param {传入的文件名}
return {True:文件加密 False:文件没加密}
'''
rf = rarfile.RarFile(file)
is_encrypted = rf.needs_password()
if is_encrypted:
return True
else:
return False
对于gz格式#
gz文件一般不加密常见的是这种.tar.gz格式的
对于tar格式#
在python标准库我没找到关于检测加密的方法,对于tar的加密原理我也没深入了解,只是简单地通过能否打开压缩包来判断是否加密,若能解压缩说明,没加密,若不能解压缩,则加密了(这种判断方法不好,迫不得已而为之,若有更好的方法,欢迎大佬留言或私信)
def check_gz_tar(file: str) -> bool:
'''
name:
des: 检测gz格式压缩包是否加密,注:gz文件一一般不加密的,检测得是.tar.gz是否加密
param {传入的文件名}
return {True: 文件加密 False: 文件没加密}
'''
try:
zf = tarfile.open(file)
return False
except Exception as e:
return True
完整的代码请访问我的github
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗