脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Python如何破解压缩包密码

Python如何破解压缩包密码

2023-02-14 10:51平底锅锅锅 Python

破解rar和zip压缩包。Windows下使用PyCharm软件,本文给大家详细介绍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.在线调试

Python如何破解压缩包密码

2.脚本运行

  • cmd 窗口打开方式:右键开始菜单,选择‘命令提示符(管理员)’即可。或者从开始菜单->运行->输入cmd,回车。
  • 关于 cd 命令:用于改变当前目录路径。使用方式:cd[空格][路径]。例如 cd d:/Python27/Mytest 转到该路径下。
  • 注意:如果当前盘符不是 D 盘,需要先转到 D 盘,输入 d: 回车即可。然后才可以使用 cd d:/Python27/Mytest 。
  • 输入python test.py。test.py是对应的文件名。

Python如何破解压缩包密码

到此这篇关于Python如何破解压缩包密码的文章就介绍到这了,更多相关Python破解压缩包密码内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/C_gyl/article/details/89407824

延伸 · 阅读

精彩推荐
  • Pythonpython openpyxl的使用方法

    python openpyxl的使用方法

    Python借助openpyxl可以对xlsx文件进行操作,帮助大家高效办公,处理excel文件,下面就介绍一下相关的方法,以及一个小例子。...

    临时营地7382021-12-07
  • PythonPython3简单实现串口通信的方法

    Python3简单实现串口通信的方法

    今天小编就为大家分享一篇Python3简单实现串口通信的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    青阳天华11272021-07-11
  • PythonPandas的read_csv函数参数分析详解

    Pandas的read_csv函数参数分析详解

    这篇文章主要介绍了Pandas的read_csv函数参数分析详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    Lavi_qq_29101380257492021-07-29
  • PythonPython 迭代器工具包【推荐】

    Python 迭代器工具包【推荐】

    迭代器工具在产生数据的时候将会显得非常便捷、高效,掌握了这些基本的方法之后,通过简单的组合就可以获得更多迭代器工具。...

    wulei3122020-08-22
  • PythonPython爬虫框架Scrapy常用命令总结

    Python爬虫框架Scrapy常用命令总结

    这篇文章主要介绍了Python爬虫框架Scrapy常用命令,结合实例形式总结分析了Scrapy框架中常见的全局命令与项目命令功能、使用方法及操作注意事项,需要的朋...

    喷跑的豆子7012021-03-22
  • Pythonpython机器学习理论与实战(二)决策树

    python机器学习理论与实战(二)决策树

    这篇文章主要介绍了python机器学习理论与实战第二篇,决策树的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    marvin5217862021-01-06
  • Python详解Python传入参数的几种方法

    详解Python传入参数的几种方法

    这篇文章主要介绍了Python传入参数的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随...

    abc_1236610952021-06-27
  • Pythonpython scipy.misc.imsave()函数的用法说明

    python scipy.misc.imsave()函数的用法说明

    这篇文章主要介绍了python scipy.misc.imsave()函数的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    沃特么.拆基.达柴机7462021-11-05