压缩包密码不记得了打不开?我用Python分分钟就处理了

  • 时间:2022-03-15 14:16 作者:编程吗 来源: 阅读:486
  • 扫一扫,手机访问
摘要:相信大家都遇到过这种情况,下载文件的时候遇到压缩包又没有密码,或者者说自定义的加密密码,但是不记得了,就很难受~但是~在Python程序员面前,这都是小问题!话不多说,我们直接开始操作.。一、准备工作我们先打开一个加密的压缩包尝试原始方法解压一下而后弹出来让我输密码正常打不开,假如你点击跳过所有加密,

相信大家都遇到过这种情况,下载文件的时候遇到压缩包又没有密码,或者者说自定义的加密密码,但是不记得了,就很难受~


但是~
在Python程序员面前,这都是小问题!


话不多说,我们直接开始操作.。

一、准备工作

我们先打开一个加密的压缩包尝试原始方法解压一下


而后弹出来让我输密码


正常打不开,假如你点击跳过所有加密,它也不会打开,直接就关闭当前你窗口了。

那正常情况下,我们能怎样办,什么也办不了,下一个会更乖。


我们打开pycharm,新建一个py文件,暂且我把它命名为zip_pwd

灵魂三问:没有pycharm?Python也没有?还不会安装?私我

在这之前呢,我们先要去收集少量信息,比方当前的密码位数与类型。
类型包含包括它有没有特殊字符,有没有字符串,是不是纯数字。

假设我们现在已知信息呢,总共有两个,已知当前密码类型为整形,六位数密码。

我们先创立一个纯数字6位密码库,你也可以去GitHub上面下载一个包含所有字符的密码字典库,这个现在是开源的,破解时间具体要看设置的密码长短、复杂与否。

二、开始操作

回到正题

已知我们现在的密码是六位纯数字,那么怎样自己创立密码字典呢?

首先我们要完成一个文件写入的功能

首先公告一个变量 f

f = open()# Python内置函数  

open是一个IO流,可以完成文件读写功能。

比方说我先想在一个文件里写入少量内容,即可以通过open去做 。

而后我们通过open创立一个文件,名字暂且命名为possword.txt,在加入一个写入方式,以 w方式去写入。

f = open('password.txt','w')

而后通过循环去创立密码,密码设置个1000000

for id in range(1000000)

这时候需要创立一个password变量生成密码,创立之前先导入一个方法的包。

import zipfile

而后通过password可以开始生成密码了 ,这个zfill等于 6位的,再加上换行,由于生成一个密码就要换一行,并且生成密码应该是一个字符串类型。

password = str(id).zfill(6) + '\n'

而后通过f.write方法把password写入到文件当中

f.write(password)

写进去之后要去关闭当前的文件流

f.close()

而后我们来尝试去生成一下,看看能不能成功。

import zipfilef = open('password.txt','w')for id in range(1000000)    password = str(id).zfill(6) + '\n'    f.write(password)f.close()

可以看到这里给我们生成了一个possword.txt密码字典,它是一个密码库。

000000一直到999999它已经一律生成出来了。

这就是一个简单的密码字典生成方式,假如要去生成一个比较复杂的密码一定不会这么简单,给你们看个一个复杂的,这里我就不演示了,看看即可以了,将近写了一万多行。

所以你们自己想要去生成的话,还得专门好好学一下。


搞定六位数数字密码字典后我们需要完成处理压缩文件密码的函数

首先我们先来公告一个函数 ,取个名字叫file,而后加入两个行参。
第一个是我的压缩文件zipfile,第二个是当前需要传入的密码password

def pwd_file(zipfile,password):

传完行参后写上一个异常解决,调用zipfile,它里面会有一个方法extractall传入两个值,第一个是pwd传入字节,在字节里传入行参,编码集是utf8

tey:    zipfile.extractall(pwd=bytes(password, 'utf8'))

而后print压缩包密码,打印password

print('压缩包密码:', password)

由于密码库里面密码比较多,只有一个正确的,其它的都是错误的,所以一定会报错,所以我们要写一个异常解决,写上一个pass即可以了,报错了就给它pass掉。

except:    pass

这就是一个简单的函数,我们通过zipfile它里面的一个extractall方法去智能的获取正确密码,它是可以自动匹配密码的。

所以说Python牛逼,很多东西都不需要我们去写,直接调用就好了。

而后我们来写上执行函数

先写上一个main函数

def main():

main函数里面,通过zipfile方法把加密的压缩文件代入到代码中。

zipFlie = zipfile.ZipFile('./获取文件密码.zip')

通过pwd生成一个list变量,打开生成的密码文件。

pwd_list = open('./password.txt')

而后我们需要一个一个去试密码,这个是一行一行的去读。

for line in pwd_list.readlines():

读到一个就把它写进去,拿到一个密码删除一个换行符。

pwd = line.strip('\n')

通过pwd_file调用之前写的函数,传zipFliepwd

pwd_file(zipFlie, pwd)

最后写入函数入口,写上一个main,为什么要写这个函数入口呢?不写也可以运行的。

由于它是用来去做测试的。

if __name__是一个测试入口,什么意思呢?

比方我在当前文件下导入了其它文件库,但是我又不想用,我即可以通过if让它不去运行,所以可写可不写,当一个延伸。

if __name__ == '__main__':    main()

一律代码

import zipfilef = open('password.txt', 'w')for id in range(1000000):    password = str(id).zfill(6) + '\n'    f.write(password)f.close()def pwd_file(zipFlie, password):    try:        zipFlie.extractall(pwd=bytes(password, 'utf8'))        print('压缩包密码:', password)    except:        passdef main():    zipFlie = zipfile.ZipFile('./获取文件密码.zip')    pwd_list = open('./password.txt')    for line in pwd_list.readlines():        pwd = line.strip('\n')        pwd_file(zipFlie, pwd)if __name__ == '__main__':    main()#视频讲解放在评论区

我们看看效果,可以看到压缩包的密码已经打印出来了。


假如你要获取的密码越复杂,你的电脑越好就计算的越快。

兄弟们,学废了吗?

原创不易,点个赞支持一下哇~

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】2FA验证器 验证码如何登录(2024-04-01 20:18)
【系统环境|】怎么做才能建设好外贸网站?(2023-12-20 10:05)
【系统环境|数据库】 潮玩宇宙游戏道具收集方法(2023-12-12 16:13)
【系统环境|】遥遥领先!青否数字人直播系统5.0发布,支持真人接管实时驱动!(2023-10-12 17:31)
【系统环境|服务器应用】克隆自己的数字人形象需要几步?(2023-09-20 17:13)
【系统环境|】Tiktok登录教程(2023-02-13 14:17)
【系统环境|】ZORRO佐罗软件安装教程及一键新机使用方法详细简介(2023-02-10 21:56)
【系统环境|】阿里云 centos 云盘扩容命令(2023-01-10 16:35)
【系统环境|】补单系统搭建补单源码搭建(2022-05-18 11:35)
【系统环境|服务器应用】高端显卡再度登上热搜,竟然是因为“断崖式”的降价(2022-04-12 19:47)
手机二维码手机访问领取大礼包
返回顶部