python破解压缩包密码(密码字典)
系列文章目录
文章目录
- 系列文章目录
- 前言
- 一、设置压缩包密码
- 二、python解除压缩密码(1)
- 1.源码
- 2.使用方法
- 三、python解除压缩密码(2)
- 1.源码
- 2.使用方法
- 总结
前言
一、设置压缩包密码
1、打开压缩软件,新建压缩文件,这里使用Bandizip;
2、点击添加或将文件拖进来,点击设置密码-输入密码-开始压缩;
二、python解除压缩密码(1)
问题描述:当我们忘记我们的压缩密码时;
1.源码
zipcrack.py代码如下(示例):
# -*- encoding = 'utf-8' -*-
import zipfile
import optparsedef extractFile(zFile,password):"""解压函数"""try:zFile.extractall(pwd=password.encode('utf-8'))print('[+] Password = ' + password + '\n')return Trueexcept:return
def main():parser = optparse.OptionParser("usage:" + "-f <zipfile> -d <dictionary>")parser.add_option('-f', dest='zname', type='string', help='specify zip file')parser.add_option('-d', dest='dname', type='string', help='Password dictionary')(options, args) = parser.parse_args()if(options.zname == None) | (options.dname == None):print(parser.usage)exit(0)else:zname = options.znamedname = options.dnamezFile = zipfile.ZipFile(zname)try:passFile = open(dname, 'r', )with open(dname, 'r', encoding = 'utf-8') as passFile:for line in passFile.readlines():password = line.strip('\n')flag = extractFile(zFile, password)if flag:print('爆破成功')breakexcept Exception:print('错误输入')if __name__ == '__main__':main()
2.使用方法
运行命令如下:
python zipcrack.py -f file.zip -d password.txt
password.tex为密码字典(可替换);
三、python解除压缩密码(2)
1.源码
import time
from typing import List
from tqdm import tqdm
from itertools import chain
from zipfile import ZipFilestart = time.time()# chr(97) -> 'a' 这个变量保存了密码包含的字符集dictionaries = [chr(i) for i inchain(range(97, 123), # a - zrange(65, 91), # A - Zrange(48, 58))] # 0 - 9#dictionaries.extend(['.com', 'www.']) # 添加自定义的字符集#dictionaries = [chr(i) for i in range(48, 58)] # 0 - 9
file_name = "hello.zip"# 你的文件路径def all_passwd(dictionaries: List[str], maxlen: int):# 返回由 dictionaries 中字符组成的所有长度为 maxlen 的字符串def helper(temp: list, start: int, n: int):# 辅助函数,是个生成器if start == n: # 达到递归出口yield ''.join(temp)returnfor t in dictionaries:temp[start] = t # 在每个位置yield from helper(temp, start + 1, n)yield from helper([0] * maxlen, 0, maxlen)zfile = ZipFile(file_name, 'r') # 很像opendef extract(zfile: ZipFile, pwd: str) -> bool:# zfile: 一个ZipFile类, pwd: 密码try:zfile.extractall(path='.', pwd=pwd.encode('utf-8')) # 密码输入错误的时候会报错now = time.time() # 故使用 try - except 语句print(f"Password is: {pwd}") # 将正确的密码输出到控制台return Trueexcept:return False
# 用 bool 类型的返回值告诉主程序是否破解成功 (意思就是返回 True 了以后就停止)#lengths = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] # 密码长度
lengths = [4] # 密码长度
total = sum(len(dictionaries) ** k for k in lengths) # 密码总数for pwd in tqdm(chain.from_iterable(all_passwd(dictionaries, maxlen) for maxlen in lengths), total=total):if extract(zfile, pwd): # 记得extract函数返回的是bool类型的哦break
2.使用方法
pip3 install tqdm==4.50.2
安装好后,运行破解脚本即可!
总结
分享:
想像力比知识更重要。因为知识是有限的,而想像力是无限,它包含了一切,推动着进步,是人类进化的源泉。——爱因斯坦
python破解压缩包密码(密码字典)相关推荐
- Python破解pdf打开密码
Python破解pdf打开密码 环境 版本 系统 uos Python版本 Python3 模块 PyPDF2.pikepdf.tqdm 安装相应的模块 sudo pip3 install PyPDF ...
- Python破解网站登录密码脚本
这篇文章主要为大家介绍一个简单的Python暴力破解网站登录密码脚本,文中的过程讲解详细,对我们学习Python有一定的帮助,感兴趣的可以学习一下.编程学习资料点击领取 目录 测试靶机为DVWA,适合 ...
- Python破解压缩包密码问题
所用知识 1. Pool 进程池 2. try...except 异常处理 3.枚举的方式 4.生成器的运用 逻辑关系 通过生成假密码去碰撞!捕获异常,一直碰撞,直到生成的密码与压缩包建立的密码对应, ...
- Python破解压缩包密码
简介: 破解rar和zip压缩包.Windows下使用PyCharm软件. 1.步骤 1.环境 指令pip install 安装. 如果是rar文件需要把rar安装包下的Rar.exe和UnRar.e ...
- 使用Python破解zip的密码
目录 ■代码 ■坑 ■运行效果 ■TODO ■扩展 ■代码 #!/usr/bin/python # encoding: utf-8import zipfileclass unlockZip:def _ ...
- 利用 Python 破解 ZIP 或 RAR 文件密码
利用 Python 破解 ZIP 或 RAR 文件密码 破解原理 实验环境 库 利用 Pipenv 安装 rarfile 编码 准备密码本 读取压缩文件 尝试解压 暴力破解 程序入口 使用 运行结果: ...
- 思路+源码,利用Python破解WIFI密码详解,100M的字典已备好
前言 WIFI破解,Python程序员必学技能.WIFI已经完全普及,现在Python程序员没网,走到哪里都不怕! 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后 ...
- python暴力破解压缩包密码(python暴力破解zip压缩包)
python暴力破解压缩包密码 简介 简介: ZIP文件格式是一种数据压缩和文档储存的文件格式,原名Deflate,发明者为菲尔·卡茨(Phil Katz),他于1989年1月公布了该格式的资料.ZI ...
- 使用Python破解rar压缩包密码
使用Python破解rar压缩包密码需要使用第三方库,例如rarfile.可以使用rarfile库的RarFile类的extractall方法,通过枚举密码的方式破解rar压缩包的密码.代码示例如下: ...
- 使用python暴力破解zip压缩包的密码
如果你有压缩包的密码忘记了,并且压缩包的加密算法采用的是ZipCrypto,并且压缩参数如下图所示: 那么你就可以使用本文中的方法进行破解. 压缩包的加密,是根据输入的密码进行运算加密,输入不同的密码 ...
最新文章
- nyoj841最高位数字
- 还在直接操作Redis?赶快来试试它....
- android122 zhihuibeijing 新闻中心NewsCenterPager加载网络数据实现
- bootstrap实现树节点、树结构
- iOS-纯代码编写本地音乐播放器AVAudioPlayer
- 原创科幻短篇《高考》
- 为什么越长大越不想过生日
- Failed to install metadata com.weiwen.common:weiwen-common-core/maven-metadata.xml: Could not parse
- leetcode:Permutations1+2nbsp;+nbsp;Rotat…
- PHP中高级面试题2018(1)
- 接口里面可以写实现方法吗【可以】 、接口可以多继承吗【可以】
- 2017下半年掘金日报优质文章合集:Android篇,android开发工程师
- 秦皇岛达内传授零基础怎样学平面设计
- 超分辨率——综述文章
- 关于Windows日志
- 〖全域运营实战白宝书 - 运营角色认知篇③〗- 运营的底层逻辑是什么?
- TestDirector 8.0下载地址以及安装教程
- _bss_start _armboot_start
- C++ Test单元测试工具
- activiti监听器设置审批人