zoukankan      html  css  js  c++  java
  • Python 之如何暴力破解加密文件

    背景介绍:

    在工作中我们可能会遇到一些加密过的压缩文件,如果需要获取压缩文件的内容,必须先解密,然而仅凭手动去尝试肯定是不大可能的,那么我们借助 Python 来实现会极大的增加破解成功的可能性。

    Python 代码实现如下:

     1 import zipfile
     2 import rarfile
     3 import time
     4  
     5 def extractFiles(filename):
     6     #记录开始时间
     7     start_time = time.time()
     8  
     9     #判断压缩包类型并读取压缩包
    10     if(filename.endswith(".zip")):
    11         fp=zipfile.ZipFile(filename,'r')
    12     if(filename.endswith(".rar")):
    13         fp=rarfile.RarFile(filename,'r')
    14  
    15     #读取密码本文件
    16     try:
    17         passwdfiles=open("passwd.txt")
    18     except:
    19         print("the file not found")
    20  
    21     #遍历密码本中的每一行密码去匹配 zip 加密文件
    22     for line in passwdfiles.readlines():
    23         passwd= line.strip("
    ")
    24         # passwd=line
    25         try:
    26             #调用extractall来依次尝试密码
    27             fp.extractall(path='.',pwd=passwd.encode("utf-8"))
    28             print("the %s of passwd is right"%passwd)
    29         except:
    30             print("the %s of passwd is wrong"%passwd)
    31  
    32     # 记录结束时间
    33     end_time = time.time()
    34     print('破解压缩包花了%s秒' % (end_time - start_time))
    35  
    36 if __name__ == '__main__':
    37     extractFiles("test.zip")

    小结:

    上述示例代码适合以.zip和.rar两种格式结尾的压缩文件的解密,其主要思路是循环使用密码本中的每一行密码尝试进行压缩文件的解密操作,最后记录整个解密过程共花费的时长,以秒为单位。

    欢迎关注【无量测试之道】公众号,回复【领取资源】
    Python编程学习资源干货、
    Python+Appium框架APP的UI自动化、
    Python+Selenium框架Web的UI自动化、
    Python+Unittest框架API自动化、
    资源和代码 免费送啦~
    文章下方有公众号二维码,可直接微信扫一扫关注即可。

    备注:我的个人公众号已正式开通,致力于测试技术的分享,包含:大数据测试、功能测试,测试开发,API接口自动化、测试运维、UI自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:


    添加关注,让我们一起共同成长!

  • 相关阅读:
    排序算法之冒泡排序
    排序算法之快速排序
    排序算法之插入排序
    Java集合之LinkedList源码分析
    排序算法之选择排序
    Java集合之Vector源码分析
    Python 装饰器
    一致性哈希
    剑指Offer-数组中重复的数字
    剑指Offer-把字符串转换成整数
  • 原文地址:https://www.cnblogs.com/Wu13241454771/p/15438699.html
Copyright © 2011-2022 走看看