电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python 破解加密zip文件的密碼

瀏覽:3日期:2022-06-21 15:45:19

今天的文章來自 盞茶作酒 同學。他在老電腦中發現了一個加密的 zip 文件,于是用 Python 破解了文件密碼。在破解的過程中出現了內存爆炸的問題,通過閱讀 Python 源代碼找到了解決方案。

下面就來給大家分享一下他的操作。

之前在家里的老電腦中,發現一個加密zip壓縮包,由于時隔太久忘記密碼了,依稀記得密碼是6位字母加數字,網上下載了很多破解密碼的軟件都沒有效果,于是想到自己用Python寫一個暴力破解密碼的腳本。Python 有一個內置模塊 zipfile 可以解壓 zip 壓縮包。先來測試一波:創建一個測試文件,壓縮,設置解壓密碼為123。

python 破解加密zip文件的密碼

import zipfile# 創建文件句柄file = zipfile.ZipFile('測試.zip', ’r’)# 提取壓縮文件中的內容,注意密碼必須是bytes格式,path表示提取到哪file.extractall(path=’.’, pwd=’123’.encode(’utf-8’))

運行效果如下圖所示,提取成功。

python 破解加密zip文件的密碼

既然如此,那我不停嘗試所有可能的密碼組合去解壓縮不就行了嘛~

好了,開始破解老文件的密碼。

為了提高速度,我還加了多線程的代碼:

import zipfileimport itertoolsfrom concurrent.futures import ThreadPoolExecutordef extract(file, password): if not flag: return file.extractall(path=’.’, pwd=’’.join(password).encode(’utf-8’))def result(f): exception = f.exception() if not exception:# 如果獲取不到異常說明破解成功print(’密碼為:’, f.pwd)global flagflag = Falseif __name__ == ’__main__’: # 創建一個標志用于判斷密碼是否破解成功 flag = True # 創建一個線程池 pool = ThreadPoolExecutor(100) nums = [str(i) for i in range(10)] chrs = [chr(i) for i in range(65, 91)] # 生成數字+字母的6位數密碼 password_lst = itertools.permutations(nums + chrs, 6) # 創建文件句柄 zfile = zipfile.ZipFile('加密文件.zip', ’r’) for pwd in password_lst:if not flag: breakf = pool.submit(extract, zfile, pwd)f.pwd = pwdf.pool = poolf.add_done_callback(result)

然而,事情并沒有那簡單……

代碼跑一會兒,內存爆了!

python 破解加密zip文件的密碼

于是,為了找尋問題所在,我就去查看了一下源碼,發現ThreadPoolExecutor默認使用的是無界隊列。而程序中嘗試密碼的速度跟不上生產密碼的速度,就會把生產任務無限添加到隊列中。導致內存被占滿。內存直接飆到95:

python 破解加密zip文件的密碼

找到病根兒,剩下的就是對癥下藥了。

繼承并重寫了ThreadPoolExecutor類中的_work_queue屬性,將無界隊列改成有界隊列,這樣就不會出現內存爆滿的問題,看代碼:

import queuefrom concurrent.futures import ThreadPoolExecutorclass BoundedThreadPoolExecutor(ThreadPoolExecutor): def __init__(self, max_workers=None, thread_name_prefix=’’):super().__init__(max_workers, thread_name_prefix)self._work_queue = queue.Queue(self._max_workers * 2) # 設置隊列大小

用自定義的BoundedThreadPoolExecutor類替代前面代碼中的ThreadPoolExecutor。

再次執行……

python 破解加密zip文件的密碼

程序輸入如下圖內容:

python 破解加密zip文件的密碼

Bingo!破解成功!(原來密碼如此簡單……)話說回來,畢竟這個壓縮包我是隱約知道它的位數和范圍(字母和數字),所以破解出來需要的時間是可以忍受的。如果有天你在網上找了一個無人認領的加密壓縮包,想要一窺究竟但又并不知道它有多少位密碼,那我只能祝你好運啦~

以上就是python 破解加密zip文件的密碼的詳細內容,更多關于python 破解zip文件密碼的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 火锅加盟_四川成都火锅店加盟_中国火锅连锁品牌十强_朝天门火锅【官网】 | led全彩屏-室内|学校|展厅|p3|户外|会议室|圆柱|p2.5LED显示屏-LED显示屏价格-LED互动地砖屏_蕙宇屏科技 | 辽宁资质代办_辽宁建筑资质办理_辽宁建筑资质延期升级_辽宁中杭资质代办 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | 冰晶石|碱性嫩黄闪蒸干燥机-有机垃圾烘干设备-草酸钙盘式干燥机-常州市宝康干燥 | 除湿机|工业除湿机|抽湿器|大型地下室车间仓库吊顶防爆除湿机|抽湿烘干房|新风除湿机|调温/降温除湿机|恒温恒湿机|加湿机-杭州川田电器有限公司 | 阁楼货架_阁楼平台_仓库仓储设备_重型货架_广州金铁牛货架厂 | 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 大立教育官网-一级建造师培训-二级建造师培训-造价工程师-安全工程师-监理工程师考试培训 | 安徽集装箱厂-合肥国彩钢结构板房工程有限公司 | 超声波清洗机_大型超声波清洗机_工业超声波清洗设备-洁盟清洗设备 | 杭州双螺杆挤出机-百科| 博医通医疗器械互联网供应链服务平台_博医通 | 温州在线网| 皮带输送机-大倾角皮带输送机-皮带输送机厂家-河南坤威机械 | 硅PU球场、篮球场地面施工「水性、环保、弹性」硅PU材料生产厂家-广东中星体育公司 | 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 高空重型升降平台_高空液压举升平台_高空作业平台_移动式升降机-河南华鹰机械设备有限公司 | 免联考国际MBA_在职MBA报考条件/科目/排名-MBA信息网 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 冲击式破碎机-冲击式制砂机-移动碎石机厂家_青州市富康机械有限公司 | 自动记录数据电子台秤,记忆储存重量电子桌称,设定时间记录电子秤-昆山巨天 | 贴板式电磁阀-不锈钢-气动上展式放料阀-上海弗雷西阀门有限公司 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 | 圆窗水平仪|伊莉莎冈特elesa+ganter| 好物生环保网、环保论坛 - 环保人的学习交流平台 | 「钾冰晶石」氟铝酸钾_冰晶石_氟铝酸钠「价格用途」-亚铝氟化物厂家 | 首页-瓜尔胶系列-化工单体系列-油田压裂助剂-瓜尔胶厂家-山东广浦生物科技有限公司 | 东莞压铸厂_精密压铸_锌合金压铸_铝合金压铸_压铸件加工_东莞祥宇金属制品 | 大流量卧式砂磨机_强力分散机_双行星双动力混合机_同心双轴搅拌机-莱州市龙跃化工机械有限公司 | 苏州西朗门业-欧盟CE|莱茵UL双认证的快速卷帘门品牌厂家 | 地图标注-手机导航电子地图如何标注-房地产商场地图标记【DiTuBiaoZhu.net】 | 济南品牌包装设计公司_济南VI标志设计公司_山东锐尚文化传播 | 北京发电机出租_发电机租赁_北京发电机维修 - 河北腾伦发电机出租 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 油液红外光谱仪-油液监测系统-燃油嗅探仪-上海冉超光电科技有限公司 | 活性炭厂家-蜂窝活性炭-粉状/柱状/果壳/椰壳活性炭-大千净化-活性炭 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 顶空进样器-吹扫捕集仪-热脱附仪-二次热解吸仪-北京华盛谱信仪器 | 济南货架定做_仓储货架生产厂_重型货架厂_仓库货架批发_济南启力仓储设备有限公司 | 科研ELISA试剂盒,酶联免疫检测试剂盒,昆虫_植物ELISA酶免试剂盒-上海仁捷生物科技有限公司 |