​​​​​​​如何利用python破解zip加密文件

 更新时间:2022年05月22日 11:13:38   作者:​ 蓝星部队   ​  
这篇文章主要介绍了​​​​​​​如何利用python破解zip加密文件,文章基于python的相关资料展开破解zip加密文件的详细内容介绍,需要的小伙伴可以参考一下

前言:

日常工作中,会遇到一些加密的zip文件,但是因为某些原因或者时间过长,密码不知道了。但是zip文件中文件有很重要很必须。那么,我们试一试万能的Python,暴力破解密码。

一、破解zip加密文件的思路

  • 准备一个加密的zip文件。
  • zipfile模块可以解压zip文件。

解压时可以提供密码zfile.extractall("./", pwd=password.encode("utf8"))

  • itertools.permutations实现全字符的全排列。

通过函数itertools.permutations("abc", 3)实现全字符的全排列:abc/acb/bca/bac/cab/cba

二、实例代码演示

0、zip的压缩方式

本文介绍的zip文件知道密码一共是4位的,密码字符的范围是a-z1-0。并且不存在重复字符的,不会有“aabb”的密码。zip压缩时是选择了zip传统加密!

1、解压zip文件

导入zipfile模块,使用其中的extractall()函数。

import itertools
filename = "readme.zip"
# 创建一个解压的函数,入参为文件名和密码
# 并使用try-except,避免报错中断程序。
def uncompress(file_name, pass_word):
    try:
        with zipfile.ZipFile(file_name) as z_file:
            z_file.extractall("./", pwd=pass_word.encode("utf-8"))
        return True
    except:
        return False

2、实现密码字符的全排列

import zipfile
import itertools
filename = "readme.zip"
# 创建一个解压的函数,入参为文件名和密码
# 并使用try-except,避免报错中断程序。
def uncompress(file_name, pass_word):
    try:
        with zipfile.ZipFile(file_name) as z_file:
            z_file.extractall("./", pwd=pass_word.encode("utf-8"))
        return True
    except:
        return False
# chars是密码可能的字符集
chars = "abcdefghijklmnopqrstuvwxyz0123456789"
for c in itertools.permutations(chars, 4):
    password = ''.join(c)
    print(password)
    result = uncompress(filename, password)
    if not result:
        print('解压失败。', password)
    else:
        print('解压成功。', password)
        break

文件压缩时,一些注意的事项: 

三、密码是几位未知,也可以破解密码

查过一些资料,zip压缩文件密码最长为12位,在原来的程序上增加上一个for循环就可以实现破解密码了。

import zipfile
import itertools
filename = "readme.zip"
def uncompress(file_name, pass_word):
    try:
        with zipfile.ZipFile(file_name) as z_file:
            z_file.extractall("./", pwd=pass_word.encode("utf-8"))
        return True
    except:
        return False
chars = "abcdefghijklmnopqrstuvwxyz0123456789"
for i in range(12):
    for c in itertools.permutations(chars, i):
        password = ''.join(c)
        print(password)
        result = uncompress(filename, password)
        if not result:
            print('解压失败。', password)
        else:
            print('解压成功。', password)
            break

总结

此方法可以是实现破解zip文件的密码,python可以完成一些好玩的事情。

到此这篇关于如何利用python破解zip加密文件的文章就介绍到这了,更多相关python破解加密文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中魔术方法的定义及一些常用方法

    Python中魔术方法的定义及一些常用方法

    所有以双下划线__包起来的方法,统称为Magic Method(魔术方法),它是一种的特殊方法,这篇文章主要给大家介绍了关于Python中魔术方法的定义及一些常用方法,需要的朋友可以参考下
    2024-02-02
  • python如何建立全零数组

    python如何建立全零数组

    在本篇内容里小编给大家分享了关于python建立全零数组的方法,需要的朋友们跟着学习下吧。
    2020-07-07
  • Python PyQt5实战项目之查询器的实现流程详解

    Python PyQt5实战项目之查询器的实现流程详解

    PyQt5以一套Python模块的形式来实现功能。它包含了超过620个类,600个方法和函数。它是一个多平台的工具套件,它可以运行在所有的主流操作系统中,包含Unix,Windows和Mac OS。PyQt5采用双重许可模式。开发者可以在GPL和社区授权之间选择
    2021-11-11
  • python中使用print输出中文的方法

    python中使用print输出中文的方法

    今天小编就为大家分享一篇python中使用print输出中文的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • django处理select下拉表单实例(从model到前端到post到form)

    django处理select下拉表单实例(从model到前端到post到form)

    这篇文章主要介绍了django处理select下拉表单实例(从model到前端到post到form),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Python txt文件常用读写操作代码实例

    Python txt文件常用读写操作代码实例

    这篇文章主要介绍了Python txt文件常用读写操作代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • python 类之间的参数传递方式

    python 类之间的参数传递方式

    今天小编就为大家分享一篇python 类之间的参数传递方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 详解向scrapy中的spider传递参数的几种方法(2种)

    详解向scrapy中的spider传递参数的几种方法(2种)

    这篇文章主要介绍了详解向scrapy中的spider传递参数的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Python中的enumerate() 函数用法详解

    Python中的enumerate() 函数用法详解

    enumerate()是python的内置函数,将一个可遍历iterable数据对象(如list列表、tuple元组或str字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中,这篇文章主要介绍了Python中的enumerate() 函数用法详解,需要的朋友可以参考下
    2024-01-01
  • PyQt5高级界面控件之QTableWidget的具体使用方法

    PyQt5高级界面控件之QTableWidget的具体使用方法

    这篇文章主要介绍了PyQt5高级界面控件之QTableWidget的具体使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02

最新评论