当前位置: 首页 > article >正文

ZIP完美解密解压缩和暴力破解最佳实现

前几天刚刚写了一个ZIP完美加密压缩的python解决方案(ailx10:python给文件夹和文件进行zip加密压缩),其实我找这个方案花了一点时间的,因为网上关于ZIP加密压缩的大部分都是暴力破解相关的,所以我今天也来输出一个ZIP完美解密压缩的python解决方案,之所以称之为完美方案,因为和它加密压缩是一样的,只需要调整几个参数,就实现了解密,如果我再给解密加一个结果判断,然后再加一层循环,就是妥妥的ZIP解密暴力破解方案了~

ailx10

1951 次咨询

网络安全优秀回答者

互联网行业 安全攻防员

去咨询

废话不多说,直接冲冲冲,新增2个函数,暴力破解的解决方案就出来了,那么问题来了,有现成的暴力破解工具(ailx10:ZIP加密文件破解:john简介),为什么要自己造轮子呢?

  • 结果判断函数:getResultisOk
  • 暴力破解函数:my_brute_force

文件和文件夹结构

# -*- coding: utf-8 -*-
# @Time    : 2022/10/23 9:31
# @Author  : ailx10
# @FileName: 7zip.py

import os
import time
import subprocess

def my7zip():
    appPath=r"C:\Program Files\7-Zip"
    zApp="7z.exe"
    zAction='a'
    zPass='-pailx10'
    zAnswer='-y'
    zDir=[r"E:\tmp\我的文件夹"]
    zDir2=[r"E:\tmp\我的文件.docx"]
    zipFileName = "加密文件和文件夹_{}.zip".format(time.strftime("%Y%m%d",time.localtime()))
    progDir=os.path.join(appPath,zApp)

    cmd = [zApp, zAction, zipFileName, zPass, zAnswer, zDir,zDir2]
    res = subprocess.Popen(cmd, executable=progDir, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
    res.wait()
    result = res.stdout.read()
    print(result)

def myun7zip():
    appPath=r"C:\Program Files\7-Zip"
    zApp="7z.exe"
    zAction='x'
    zPass='-pailx10'
    zAnswer='-y'
    zipFileName = "加密文件和文件夹_{}.zip".format(time.strftime("%Y%m%d",time.localtime()))
    progDir=os.path.join(appPath,zApp)
    zOutput="-o./" # 解压到当前文件夹
    zmode="-aoa" # 直接覆盖旧的文件

    cmd = [zApp, zAction, zipFileName, zPass, zAnswer, zOutput,zmode]
    res = subprocess.Popen(cmd, executable=progDir, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
    res.wait()
    result = res.stdout.read()
    print(result)

def my_brute_force():
    appPath = r"C:\Program Files\7-Zip"
    zApp = "7z.exe"
    zAction = 'x'
    zAnswer = '-y'
    zipFileName = "加密文件和文件夹_{}.zip".format(time.strftime("%Y%m%d", time.localtime()))
    progDir = os.path.join(appPath, zApp)
    zOutput = "-o./"
    zmode = "-aoa"
    password = ["ailx10"] # 密码字典
    for zPass in password:
        zPass = "-p{}".format(zPass)
        cmd = [zApp, zAction, zipFileName, zPass, zAnswer, zOutput, zmode]
        res = subprocess.Popen(cmd, executable=progDir, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
        res.wait()
        result = res.stdout.read()
        if(getResultisOk(result) == True):
            print("找到密码:{}".format(zPass))

def getResultisOk(result):
    print(type(result))
    match = re.search("Errors",str(result))
    if match:
        return False
    else:
        return True

if __name__ == "__main__":
    my7zip()
    myun7zip()
    my_brute_force()

本篇完,撒花~

发布于 2022-10-23 10:08


http://www.kler.cn/a/536152.html

相关文章:

  • vue3+ts 引入 json-editor-vue3
  • 【Elasticsearch】nested聚合
  • 【实战篇】巧用 DeepSeek,让 Excel 数据处理更高效
  • 【漫话机器学习系列】076.合页损失函数(Hinge Loss)
  • MyBatis Plus 输出完整 SQL(带参数)的 3 种方案
  • CSS(三)less一篇搞定
  • python图片转字符画应用
  • Java 集合中的 `removeIf` 和 Stream API 的 `filter`
  • 4.Python字符串和列表:字符串输入、字符串输出、下标和切片、字符串常见函数、列表(list)、列表的循环遍历、列表的增删改查、列表的嵌套、列表的切片
  • 基于单片机的电子抢答器设计(论文+源码+实物)
  • Vue 3 30天精进之旅:Day 17 - 样式和动画
  • UE学习日志#24 C++笔记#10 内存管理1
  • linux——网络计算机{序列化及反序列化(JSON)(ifdef的用法)}
  • DeepSeek本地化部署
  • 【实战】excel分页写入导出大文件
  • 如何在Android Studio中开发一个简单的Android应用?
  • 【截图】selenium自动通过浏览器截取指定元素div的图片
  • 深度剖析 Redis:缓存穿透、击穿与雪崩问题及实战解决方案
  • java将list转成树结构
  • 劳务报酬所得税
  • DeepSeek辅助段落扩写的能力怎么样?
  • 【C++】C++11
  • RAID独立硬盘冗余阵列
  • 11.PPT:世界动物日【25】
  • 【vLLM 学习】使用 CPU 安装
  • leetcode_78子集