python暴力破解压缩包密码

简介

简介
ZIP文件格式是一种数据压缩和文档储存的文件格式,原名Deflate,发明者为菲尔·卡茨(Phil Katz),他于1989年1月公布了该格式的资料。ZIP通常使用后缀名“.zip”,它的MIME格式为application/zip。当前,ZIP格式属于几种主流的压缩格式之一,其竞争者包括RAR格式以及开放源码的7z格式。从性能上比较,RAR及7z格式较ZIP格式压缩率较高,而7-Zip由于提供了免费的压缩工具而逐渐在更多的领域得到应用。Microsoft从Windows ME操作系统开始内置对zip格式的支持,即使用户的计算机上没有安装解压缩软件,也能打开和制作zip格式的压缩文件,OS X和流行的Linux操作系统也对zip格式提供了类似的支持。因此如果在网络上传播和分发文件,zip格式往往是最常用的选择。

ZIP是一种相当简单的分别压缩每个文件的存档格式。分别压缩文件允许不必读取另外的数据而检索独立的文件;理论上,这种格式允许对不同的文件使用不同的算法。不管用何种方法,对这种格式的一个告诫是对于包含很多小文件的时候,存档会明显的比压缩成一个独立的文件(在类Unix系统中一个经典的例子是普通的tar.gz存档是由一个使用gzip压缩的TAR存档组成)要大。

编码讲解

准备工作

首先是需要创建一个.zip后缀名的压缩包,然后给这个zip压缩包设置一个密码。


注意这里要点击ZIP传统加密。

把这个文件放入到pycharm里面。

开始编码

  • 首先是获取文件后缀名
from zipfile import ZipFile
import osdef passwd(path):# 获取文件的后缀名suffix_name = os.path.splitext(path)[-1][1:]print(suffix_name)if __name__ == '__main__':passwd("D:\系统默认\桌面\python数据分析\python爬虫\zip\二叉树.zip")

运行结果

  • 没有密码的解压方法
from zipfile import ZipFile
import osdef passwd(path):# 获取文件的后缀名suffix_name = os.path.splitext(path)[-1][1:]# print(suffix_name)# 如果是zip文件if suffix_name == 'zip':# 开始读zip文件with ZipFile(path, 'r') as zip:# 解压到指定文件目录下zip.extractall("D:\系统默认\桌面\python数据分析\python爬虫\\target")if __name__ == '__main__':passwd("D:\系统默认\桌面\python数据分析\python爬虫\zip\二叉树.zip")

运行结果
对于没有密码的解压,我们写到这一步就可以了,如果设置了有密码,然后了我们就会发现,这个会报错。

  • 编写枚举密码的函数
    如果学过算法的就知道了,这个就是算法里面的,那个排列组合题,在java和c++里面,需要自己去写,而且这个时间复杂度还很高,在python立面别人已经帮忙做好了这个功能。
def create_pwd(words):# 通过导入这包来设置枚举序列import itertools as its# 设置基础需要枚举的字符集# 这个base的意思就是把words集合的字符取repeat次组合# 打印出来base = its.product(words, repeat=2)for i in base:print(''.join(i))

运行结果

  • 用暴力破解来破解程序
    其实我们学过算法就知道,其实只要稍微密码长度长一点,基本上就不能够被破解了,除非需要涉及到哈希字典,这个我们以后再讨论,现在就只讨论暴力破解的写法。

完整代码

from zipfile import ZipFile
import osdef passwd(path, pwd):# 获取文件的后缀名suffix_name = os.path.splitext(path)[-1][1:]# print(suffix_name)# 如果是zip文件if suffix_name == 'zip':# 开始读zip文件with ZipFile(path, 'r') as zip:# print("当前尝试的密码是:%s"%(pwd))# 解压到指定文件目录下try:# print(pwd.encode('utf-8'))zip.extractall("D:\系统默认\桌面\python数据分析\python爬虫\\target", pwd=pwd.encode('utf-8'))print("解压成功,密码是:%s"%(pwd))return Trueexcept Exception as e: # 添加一个异常处理passdef create_pwd(words):# 通过导入这包来设置枚举序列import itertools as its# 设置基础需要枚举的字符集# 这个base的意思就是把words集合的字符取repeat次组合# 打印出来base = its.product(words, repeat=6)# 一般需要把这个打印函数注释 因为这个函数运行很消耗时间的for i in base:# print(''.join(i))yield ''.join(i) # 把这个函数制作成一个迭代器if __name__ == '__main__':words = '123456789'dir = 'D:\系统默认\桌面\python数据分析\python爬虫\zip\二叉树.zip'for p in create_pwd(words):flag = passwd(dir, p)if flag == True:break

运行结果
这个结果的命名很奇怪,但是问题不大只要可以解压,后面会讲解一下,比较难的解压方法,涉及到算法。

python暴力破解压缩包密码(python暴力破解zip压缩包)相关推荐

  1. zip压缩包密码解除软件,zip压缩包权限密码多少?

    强制移除zip压缩包密码,zip压缩包复制打印限制怎么解除?zip压缩包密码解除软件,只需要一步非常简单,用「密码帝」 就可以啦!,百度搜索密码帝就可以了,手机电脑都可以用,不用下载安装任何软件!一键 ...

  2. zip压缩包密码强制解除,zip压缩包复制打印限制如何解除?

    zip压缩包解密方法,zip压缩包不能打印复制怎么办?[真的很好用]zip压缩包box zip压缩包解密,用「密码帝」 无需下载安装软件,手机电脑都可以,一键轻松在线解密,百度搜索密码帝就可以了!

  3. zip压缩包密码怎么解开,zip压缩包有密码如何解开?

    zip压缩包移除权限口令,忘记zip压缩包密码如何找回?[亲测很溜]zip压缩包保护密码解除,用「密码帝」 无需下载安装软件,手机电脑都可以,一键轻松在线解密,百度搜索密码帝就可以了!

  4. 怎么破解wifi密码?如何破解无线路由器密码?

    面对电脑搜索到的无线网络信号,是否怦然心动?但看到一个个"启用安全的无线网络"是否又感到有一丝遗憾.如何破解WIFI密码? 在开始破解前需要准备 1. 一个有可破解无线信号的环境. ...

  5. john破解用户密码和防破解

    目录 一.系统弱口令检测 二.防止暴力破解 一.系统弱口令检测 Joth the Ripper,简称JR ●一款开源的密码分析工具,支持字典式的暴力破解 ●通过对shadow文件的口令分析,可以检测密 ...

  6. 破解栅栏密码python脚本

    今天遇到一个要破解的栅栏密码,写了个通用的脚本 1 #!/usr/bin/env python 2 # -*- coding: gbk -*- 3 # -*- coding: utf_8 -*- 4 ...

  7. “破解”WiFi密码——Python代码

    首先声明:这个方法不能轻轻松松破译邻居的WiFi密码(除非他的密码很简单). 代码工作原理大概就是,你把所有你能想到的密码汇集到一个库里,然后通过计算机代替你来一个个试,试中了就是"破解&q ...

  8. python调用nacos账号密码,Python脚本,使用私钥(如果可用)或用户名密码

    嘿,丹尼,试着跟着斯内普.注意:键值来自配置yml是RSA私钥文件的完整路径(如:/home/user/.ssh/id_RSA).在import paramiko import StringIO im ...

  9. rar压缩包密码解除软件,rar压缩包不能打印复制怎么办?

    rar压缩包加密文件去除密码,rar压缩包复制打印限制怎么解除?[解密神器]解开rar压缩包保护,用「密码帝」 就可以啦!手机电脑都可以用,一键轻松在线解密!不用下载安装任何软件!

最新文章

  1. .net采集网页方法大全(5种)
  2. 通信系统中对眼图的理解(一)
  3. fedora上ARM-LINUX-GCC 编译器安装
  4. python编程自学难吗-为什么很多人不建议自学python编程呢?
  5. jQuery的var let const
  6. Language-Directed Hardware Design for Network Performance Monitoring——Marple
  7. java跟踪会话_JavaWeb会话跟踪
  8. java源文件编译成jar_从源文件和JAR文件构建Java代码模型
  9. 阿卡接口_阿卡vs风暴
  10. Python3 爬虫实战 — 58同城武汉出租房【加密字体对抗】
  11. 如何成功构建大规模 Web 搜索引擎架构?
  12. 显卡、显卡驱动、CUDA、CUDA Toolkit、cuDNN 梳理
  13. 【论文写作】网上选课系统中模块设计如何写
  14. 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'XXX'中的标识列指定显式值。...
  15. 软件测试简历,这一点你是否漏掉
  16. 代码对比工具 mac
  17. Ubuntu20.04安装详细图文教程(双系统)
  18. S3C2440C语言点灯
  19. mysql 相同分数排名
  20. L1-087 机工士姆斯塔迪奥 - java

热门文章

  1. 【华为OD考试真题】报数游戏(Python实现)
  2. VHDL编写3-8译码器
  3. Units are seconds since 1970.
  4. matlab分形图 经典的,分形几何中一些经典图形的MATLAB画法
  5. 八、T100应付管理系统之员工费用报销管理篇
  6. 鸿蒙手机的特点,鸿蒙OS明天正式发布,十大特性,能拯救它暴跌80%的手机市场吗?...
  7. 学习bootstra前端框架
  8. 高亮效果如何用于住房类三维模型?
  9. 英语六级选词填空技巧
  10. 图解 AD9364模块 TDD与FDD