python解压文件并检查_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
總結
以上是生活随笔為你收集整理的python解压文件并检查_python脚本简单实现对压缩文件是否加密的检测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据挖掘】恒生金融有限公司2023届秋
- 下一篇: python 12306登录_Pytho