寻找的想法 解密压缩包的思想是什么? 答:尝试用各种密码解压缩文件。 用什么来解压缩文件? 答:zip使用zipfile, rar使用rarfile。Python已经为我们编写了它。您只需要调用它们的方法。 我在哪里可以找到密码? 答:程序自己计算或找到一个码本。 在理清思路后,你就可以开始了。 Zipfile和rarfile Zipfile:内置Python,无需安装; Rarfile:需要安装的文档参考:https://rarfile.readthedocs.io/api.html。 ExtracTall方法用于提取文件并生成对象。 下面以zipfile库为例进行说明。 通过Zipfile以静默方式解压缩一个无密码的文件并尝试它。 测试文件可以打包和压缩,先尝试英文或数字文件命名,尝试中文命名。 import zipfile try: # 创建 ZipFile 对象 with zipfile.ZipFile('测试文件.zip') as zfile: # 解压文件 zfile.extractall(path='./') print('文件解压成功') except: print('失败啦!') 任务完成后,解压成功,zip文件和python代码放置在同一个目录下。 用密码解压缩文件 假设您不知道密码,使用密码解压并将密码设置为1234。 import zipfile try: # 创建 ZipFile 对象 with zipfile.ZipFile('511.zip') as zfile: # 解压文件 zfile.extractall(path='./', pwd=b"1234") print('文件解压成功') except: print('失败啦!') 成功解压后,您可以使用这个想法来解压压缩包。 如果出现乱码的问题 测试中也发现如果文件名是中文,解压后文件名出现乱码,请更正。 在Python安装中找到Lib文件夹,然后打开zipfile.py文件并直接修改源代码。 搜索fname_str = fname.decode("cp437"),然后添加以下内容。
搜索 filename = filename.decode('cp437'),再后面追加如下代码。
保存文件,然后解压缩测试文件。解压成功,文件名正确。 解密文件 进入官方链接后,下一步就是解密老爸的压缩包。不要打开这么贵重的压缩包裹。 假设爸爸的密码是4位,可以直接编写以下代码进行测试。 提前准备好测试压缩包,破解密码设置为aaaf,密码如下:
经过几秒钟的简单运行,文件成功解压缩。 1
这时,我相信已经发现了问题所在。如果密码不是4位数字,它是一个不确定的数字数目,那么需要修改我的微妙循环操作。 我也不知道爸爸的密码是多少位,这有点难。 更好的解决方案 Python中构建了一个迭代器,可用于从字符串中获取固定数量的密码。测试代码如下: import itertools my_pwdstr = 'abcdefghijklmnopqrstuvwxyz0123456789' def ret_pwd(): for x in itertools.permutations(my_pwdstr, 4): yield ''.join(x) for item in ret_pwd(): print(item) 上面的代码使用了itertools,这个函数的用法如下:
连续返回由iterable元素生成的长度为r的排列。 如果r未指定或为None, r默认设置为iterable的长度。在这种情况下,生成了所有的排列。 所以使用上面的代码,你可以快速生成一个有指定数字的密码,然后你只需要通过你父亲的密码的数字的数量,你可以测试程序,而不改变代码。
改进后,可以动态控制密码的长度。如果需要特殊符号,可以继续扩展my_password_str字符串。 扩张的想法 我必须自己生成密码吗? 答:有一种文件叫密码本,找一些逐行读就行了。 一个接一个的解密太慢了,有没有有效的方法? 答:对于多线程或多进程破解,一个进程读取一个代码本,并在每个进程下启用多个线程来解析部分中的密码。 |
Archiver|手机版|小黑屋|小白教程 ( 粤ICP备20019910号 )
GMT+8, 2025-1-18 19:06 , Processed in 0.017307 second(s), 15 queries .
Powered by Discuz! X3.4
© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】