zip解压密码是什么(手机上好用的zip破解器使用方法)

前言 本文继续记录学习下Python的有趣应用:借助Python脚本暴力破解ZIP加密文件的密码。虽然有相关的工具ARCHPR可实现RAR、ZIP等压缩加密文件的可视化暴力破解,但是主要是为了学习Python编程应用。 Python语法 既然本意是学习Python编程,那自然是要对本实战应用场景的编码过程遇到的相关语法知识进行学习。 在此先推荐一个Python语法的官方站点:Python官方中文文…

前言

本文继续记录学习下 Python 的有趣应用:借助 Python 脚本暴力破解 ZIP 加密文件的密码。虽然有相关的工具 ARCHPR 可实现 RAR、ZIP 等压缩加密文件的可视化暴力破解,但是主要是为了学习 Python 编程应用。

Python语法

既然本意是学习 Python 编程,那自然是要对本实战应用场景的编码过程遇到的相关语法知识进行学习。

在此先推荐一个 Python 语法的官方站点:Python官方中文文档,支持下载到本地。

自定义迭代器

迭代是 Python 最强大的功能之一,是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象,迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退,迭代器有两个基本的方法:iter() 和 next()。

1、迭代器对象可以使用常规 for 语句进行遍历:

Python攻防-暴力破解ZIP加密文件的密码

2、也可以使用 next() 函数:

Python攻防-暴力破解ZIP加密文件的密码

3、Python 支持编写 class 来自定义迭代器,如何自定义一个迭代器:

  • 在自定义的类中添加了__iter__魔法方法可取得迭代器;
  • 在自定义的类中通过__next__魔法方法指出所有的数据。

来看看一个简单的自定义可迭代的类示例:

Python攻防-暴力破解ZIP加密文件的密码

代码运行效果:

Python攻防-暴力破解ZIP加密文件的密码

Python多线程

线程是 CPU 分配资源的基本单位,但一个程序开始运行后这个程序就变成了一个进程,而一个进程相当于一个或者多个线程。当没有多线程编程时,一个进程也是一个主线程,但有多线程编程时,一个进程包含多个线程,包括主线程。使用线程可以实现程序的并发,Python 多线程快速入门可参见:python3 多线程编程。

Python3 线程中常用的两个模块为:

  • (1)_thread;
  • (2)threading (推荐使用)

其中 thread 模块已被废弃,用户可以使用 threading 模块代替。所以在 Python3 中不能再使用 “thread” 模块,为了兼容性,Python3 将 thread 重命名为 “_thread”。

1、函数创建多线程

Python3 中提供了一个内置模块threading.Thread,可以很方便的创建多线程,threading.Thread()一般接收2个参数:

1)线程函数名:要放置线程让其后台执行的函数,有用户自己定义,主要不要加();

2)线程函数的参数:线程函数名所需的参数,以 tuple 元组的形式传入,如果不需要参数,可以不指定。

下面来看看一个简单的多线程示例:

Python攻防-暴力破解ZIP加密文件的密码

代码运行效果:

Python攻防-暴力破解ZIP加密文件的密码

2、类创建多线程

首先,自定义一个类,对这个自定义的类有两个要求:

  • 1)必须继承 threading.Thread 这个父类;
  • 2)必须重写 run() 这个方法:run() 方法相当于第一种方法中的线程函数,可以写自己需要的业务逻辑代码,在start()后将会调用。

来看看示例代码:

Python攻防-暴力破解ZIP加密文件的密码

3、 join() 方法

多线程中 join() 作用是调用 join() 的线程阻塞直到某一线程结束才继续执行。来看看示例代码:

Python攻防-暴力破解ZIP加密文件的密码

代码运行效果:

Python攻防-暴力破解ZIP加密文件的密码

4、线程的同步——锁

当一个进程拥有多个线程之后,如果他们各做各的任务互没有关系还行,但既然属于同一个进程,他们之间总是具有一定关系的。比如多个线程都要对某个数据进行修改,则可能会出现不可预料的结果。为保证操作正确,就需要引入锁来进行线程间的同步。

Python3 中的 threading 模块提供了 RLock 锁(可重入锁):

  • 对于某一时间只能让一个线程操作的语句放到 RLock 的 acquire 方法 和 release 方法之间;
  • 即 acquire() 函数相当于给 RLock 锁 上锁,而 release() 函数相当于解锁。

来看看一个简单的演示案例:

Python攻防-暴力破解ZIP加密文件的密码

代码运行效果:

Python攻防-暴力破解ZIP加密文件的密码

5、多线程函数小结:

Python攻防-暴力破解ZIP加密文件的密码

Python脚本

下面将从单线程、多线程两种角度实现 ZIP 加密文件的密码爆破。

单线程数字爆破

先来生成一个用数字密码(“101”)加密的 ZIP 压缩文件 password.zip,压缩文件为图片 pasword.png(注意勾选 “ZIP 传统加密” 的选项,后面的代码不支持 WinRAR 新式的默认加密方式),如下图所示:

Python攻防-暴力破解ZIP加密文件的密码

爆破密码的脚本也相对简单,直接上代码:

Python攻防-暴力破解ZIP加密文件的密码
Python攻防-暴力破解ZIP加密文件的密码

以上代码没什么需要特别解释的,简单补充两点:

  1. 需要注意的是在爆破过程需要使用异常处理机制避免密码错误时程序直接终止;
  2. 对于 zipfile 库的用法有疑问请参见官方文档:ZipFile数据压缩与存档。

下面直接来看看 Pycharm 中运行脚本的效果:

Python攻防-暴力破解ZIP加密文件的密码

单线程字符爆破

先来看看脚本:

Python攻防-暴力破解ZIP加密文件的密码
Python攻防-暴力破解ZIP加密文件的密码

将 password.png 重新压缩并将解压密码设置为 “ab12” 数字与字母组合的字符串,上述利用自定义迭代器生成的字符组合范围太广了,爆破起来可能跑到天荒地老……故演示此代码时我依据已知的密码对代码做了如下更改:

  1. 设置缩小字符范围:letters = ‘abcd0123456789’;
  2. 设置缩小遍历的字符串长度:for password in MyIterator(3, 4)。

来看看脚本运行效果,还足足跑了 78 秒之久:

Python攻防-暴力破解ZIP加密文件的密码

多线程字典爆破

直接上脚本:

Python攻防-暴力破解ZIP加密文件的密码
Python攻防-暴力破解ZIP加密文件的密码

代码运行效果:

Python攻防-暴力破解ZIP加密文件的密码

总结

个人感觉最后的多线程脚本实际上意义不大,仅供简单学习多线程使用……因为此程序中对每个密码的尝试都单开了一个线程、而尝试密码是否正常的逻辑函数 extractfile() 又十分简单,没有必要单开一个线程来浪费资源,除非说处理的逻辑函数 extractfile() 执行了十分耗时的操作(比如需要下载文件、或者说每次执行 extractfile() 函数都对一个单独的大型字典进行爆破等)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年5月12日 下午6:51
下一篇 2022年5月12日 下午6:52

相关推荐

  • 酷狗耳机怎么样,酷狗耳机音质及价格

    电子音乐一种新潮的音乐形式,主要通过电子乐器演绎出韵律感相对更强烈的新音乐类型,电音也逐渐成为主流音乐市场的一个重要分支,越来越受到广大年轻人的喜爱。很多人以为享受电子音乐带来的魅力,只需要选择一款低频表现不错的耳机就足够了,然而,在耳机多元化的今天,听电子音乐,定制化耳机才是最好的选择。 今天为大家带来的一款酷狗音乐最新推出的酷狗电音圈铁耳机,除了配备了高质量听感的圈铁双单元,还拥有专属的电音音…

    2022年6月30日
    760
  • 2020充电宝拆机评测排行榜

    移动电源,是广大手机党外出的随身标配,手机续航的“救命稻草”。而随着手机的使用频率越来越高,我们对于移动电源的最大的刚需不外乎就是容量大、充电快。只是,面对各式各样的移动电源,要找到一款满足自身使用需求的产品并不简单。 为了解决大家对于挑选移动电源的疑惑,硬科技今天把家里所有大容量(≥10000mAh)的充电宝都搜罗出来,包括小米、Anker、摩米士、飞利浦、品胜、魅族、羽博等9大主流充电宝品牌,…

    2022年8月23日
    650
  • 服务营销学概念及知识点,什么叫服务营销

    1964年,麦卡锡(McCarthy)提出4Ps营销组合,即产品(Product)、价格(Price)、渠道(Place)和促销(Promotion)。1981年布姆斯和比特纳(BoomsandBitner)在此基础上提出了7Ps营销组合,增加了人(People)、有形展示(PhysicalEvidence)和过程(Process)这三项元素。7Ps也构成了服务营销的基本框架。 4P与7P之间的差…

    2022年5月18日
    1270
  • 微信防封技巧分享,微信恶意营销封几天

    微信最近又开始大面积封号,很多朋友纷纷中招,开始咨询我们微信该怎么解封、怎么养号。 对此,我们总结了一整套的微信养号、解封技巧,包括: 1.为什么要养号?2.微信养号流程3.了解微信红线规则,避免被封4.微信个人号安全事项5.已经被封如何解封? 一、为什么要养号? 我们先来算一笔账,以我们的一个优秀学员为例: 这个学员拥有20万微信粉,他们目前的月销售额为500万元,平均每个粉丝每个月能给他们带来…

    2022年7月26日
    2910
  • 什么是sem,带你了解sem的工作内容

    导语:sem是什么意思呢?因为sem中包含竞价,所以大部分人都认为竞价就是sem,其实sem是搜索引擎营销,通过搜索引擎来做的营销都是包括的,例如我们常说的seo搜索引擎优化,其实也是包含在sem之中的,接下来就和优就业小编详细了解一下sem是什么吧。 首先我们从定义来了解一下,sem全称是Search Engine Marketing,通过用户对搜索引擎的依赖,在用户使用搜索引擎进行检索的同时将…

    2022年7月18日
    580
  • 网站优化推广有哪些方式,七种最有效推广的方式

    网站推广是网站优化中的重要环节。做网站推广很直接的问题就是没有效果,做了很久没效果。做完新手对于这方面的技术做起来有很难的,而搜索引擎对于图片识别,不仅对排名不利而且也不利于优化,下面小编给大家总结下网站推广的方法   1、向搜索引擎提交网址   网站推广时,是为让搜索引擎知道与收录你的网站。怎样能让搜索引擎知道呢?操作方法极其简单,需要主动来向搜索引擎提交网站的网址,这是企业与建站人员需解决的问…

    2022年7月1日
    570
  • 小规模增值税减免分录怎么做,小规模纳税人做账流程

    根据《财政部印发<关于小微企业免征增值税和营业税的会计处理规定>的通知》关于小微企业免征增值税和营业税的会计处理规定:小微企业在取得销售收入时,应当按照税法的规定计算应交增值税,并确认为应交税费,在达到《通知》规定的免征增值税条件时,将有关应交增值税转入当期营业外收入。下面我们就一起来看小规模纳税人减免增值税会计处理怎么做。 小规模纳税人减免增值税会计处理 1、发生业务时,应正常计算增…

    2022年7月20日
    790
  • seo网站推广的主要目的是什么,seo网站推广方法与技巧

    网站seo优化主要是建立在自然搜素排名的机制上,对网站进行站内站外的调整优化,改进搜素引擎的关键词排名,帮助网站获取更多的展现量,从而吸引目标用户群体的点击访问。(eqiseo.com) 首先,与投标相比,SEO优化是一项基于劳动力的工作,成本不会太多,但是效果还会持续显著。 如果你出价,你通常会限制你每天的花费,许多出价将需要受到地理位置、性别和不同关键词的限制。例如,如果一个人的知识产权是北京…

    2022年6月28日
    460
  • 小米扫地机器人怎么样(事实证明这款扫地机器人不仅外观好看且吸力超大)

    现在越来越多的智能化产品充斥着我们的生活,它们在带给我们酷炫体验的同时,也确实给我们的生活带来了便利和改变。智能化的家居数码家电,最大的优势在于可以将繁复的居家劳动简化,为你省出更多宝贵时间。同时通过网络互连和语音助手还能让一部分智能家电实现互动互连,今天笔者就来给大家分享一款由小米生态链企业推出的智能化扫地、拖地一体机。这款名为石头扫地机器人的智能扫地、拖地一体机,究竟能给我们带来怎样的不一样体…

    2022年9月21日
    590
  • 铃声软件哪个好用(免费来电铃声设置方法)

    最近小编一直在寻找好用的音频剪切软件,但是市面上大多数的网站都把音频剪切划分在了音频剪辑里面,最后呈现出来的都是一个复杂的功能较多的一个网站,今天就是想和大家分享一下我找到的一些专门做音频剪切的轻量级小工具! 1、爱给网-音频截取工具(在线使用) 推荐点 1、页面设计较美观,使用感很不错 2、工具下有使用教程,包教包会 3、操作简单,无门槛 4、不用下载软件,也没有任何广告 缺点 导出的音频格式不…

    2022年5月13日
    740

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信