加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

Python破解压缩包密码的具体步骤是啥

发布时间:2023-08-21 10:54:48 所属栏目:语言 来源:
导读:今天这篇我们来学习和了解“Python破解压缩包密码的具体步骤是什么”,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解“Python破解压缩包密码的具体步骤是什么”有一定的帮助。有这方面

今天这篇我们来学习和了解“Python破解压缩包密码的具体步骤是什么”,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解“Python破解压缩包密码的具体步骤是什么”有一定的帮助。有这方面学习需要的朋友就继续往下看吧!

简介:

破解rar和zip压缩包。Windows下使用PyCharm软件。

1.步骤

1.环境

指令pip install 安装。

如果是rar文件需要把rar安装包下的Rar.exe和UnRar.exe,放在对应项目\venv\Scripts的路径下。

import失败时,需要在File->Settings->Project Interpreter添加对应的模块。

2.判断文件格式

type = os.path.splitext(path)[-1][1:]

if type == "zip":

elif type == "rar":

3.判断是否有密码

type = os.path.splitext(path)[-1][1:]

if type == "zip":

fileGet = zipfile.ZipFile(path)

with fileGet as z:

for l in z.infolist():

is_encrypted = l.flag_bits & 0x1

if is_encrypted:

print("have password ")

break

else:

pass

elif type == "rar":

fileGet = rarfile.RarFile(path)

with fileGet as z:

if z.needs_password():

print("have password ")

else:

print("no password")

return

4.密码字典 自己写或者下载相应的软件生成。

5.解压文件

1.zip和rar

fileGet = zipfile.ZipFile(path)

fileGet = rarfile.RarFile(path)

2.解压

fileExtr.extractall(pwd=password)

2.代码

import sys

import zipfile

import rarfile

import threading

import datetime

import os

import subprocess

import getopt

i = 0

fileGet = ""

class MyThread(threading.Thread):

def __init__(self, func, args, name=''):

threading.Thread.__init__(self)

self.name = name

self.func = func

self.args = args

self.result = self.func(*self.args)

def get_result(self):

try:

return self.result

except Exception:

return None

def extractFile(fileExtr, password, fileType):

try:

encodestr = str.encode(password)

if (fileType == "zip"):

fileExtr.extractall(pwd=str.encode(password))

else:

fileExtr.extractall(pwd=password)

global i

i = i + 1

print("search count : %d,real password is : %s" % (i, password))

return password

except:

i = i + 1

print("search count : %d,test password : %s, err:%s" % (i, password, sys.exc_info()[0]))

pass

def mainStep():

path = input("please input path:")

try:

if os.path.exists(path) == False:

print("%s : path error!"%(path))

return

type = os.path.splitext(path)[-1][1:]

if type == "zip":

fileGet = zipfile.ZipFile(path)

with fileGet as z:

for l in z.infolist():

is_encrypted = l.flag_bits & 0x1

if is_encrypted:

print("have password ")

break

else:

pass

fileGet = zipfile.ZipFile(path)

elif type == "rar":

fileGet = rarfile.RarFile(path)

with fileGet as z:

if z.needs_password():

print("have password ")

else:

print("no password")

return

else:

print("file not right")

return

pwdLists = open("D:\Python工程\mutou.txt")

startTime = datetime.datetime.now()

for line in pwdLists.readlines():

Pwd = line.strip('\n')

t = MyThread(extractFile, (fileGet, Pwd, type))

t.start()

if (t.get_result() is Pwd):

break

endTime = datetime.datetime.now()

timeSpan = endTime - startTime

print("search time:%ss" % (timeSpan.total_seconds()))

except:

print("err:%s" % sys.exc_info()[0])

if __name__ == '__main__':

mainStep()

1.在线调试

2.脚本运行

cmd 窗口打开方式:右键开始菜单,选择‘命令提示符(管理员)’即可。或者从开始菜单->运行->输入cmd,回车。

关于 cd 命令:用于改变当前目录路径。使用方式:cd[空格][路径]。例如 cd d:/Python27/Mytest 转到该路径下。

注意:如果当前盘符不是 D 盘,需要先转到 D 盘,输入 d: 回车即可。然后才可以使用 cd d:/Python27/Mytest 。

输入python test.py。test.py是对应的文件名。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章