网站首页 > 技术教程 正文
此篇文章,只做今日头条首发创作,未发布其他任何平台,原创不易,抄袭、洗稿必将深究。
家人之间,总有一些私密的东西需要共享,这次,我又一次被老爸的一项任务牵扯进来。他告诉我说有一个照片文件夹打不开了,希望我能过去看看。当我打开那个文件夹时,发现里面居然是一个加密的压缩包,里面封存了许多旧时的照片。这无疑激起了我的好奇心,我想知道里面的照片是些什么,也许还有一些意外的收获。
作为家里的“电脑专家”,我觉得我有责任帮助老爸解开这个谜题。首先,我需要找到解密压缩包的思路。我考虑了一下,决定尝试通过各种可能的密码去解压文件。我打算先从一些常用的密码开始尝试,如果不行,就考虑使用程序自行运算或者找密码本。
接下来,我需要找到合适的工具来解压不同类型的压缩文件。对于zip格式的文件,Python内置了zipfile库,而对于rar格式的文件,我需要安装rarfile库。
这两个库提供了相应的方法来解压文件,我只需要调用它们的方法即可。
我决定先从zipfile库开始尝试,通过解压一个没有密码的文件,来熟悉一下解压的过程。我创建了一个测试文件,尝试用zipfile库解压它。接着,我尝试了英文、数字和中文命名的文件,以确保库的适用性。
python
Copy code
import zipfile
try:
with zipfile.ZipFile('test_file.zip', 'r') as zfile:
zfile.extractall(path='./')
print('文件解压成功')
except:
print('失败啦!
')
成功解压了文件之后,我尝试解压带密码的文件。我设置了密码为"1234",然后用相同的方法解压。这次,我需要在解压的过程中提供密码。
python
Copy code
import zipfile
try:
with zipfile.ZipFile('file_with_password.zip', 'r') as zfile:
zfile.extractall(path='./', pwd=b"1234")
print('文件解压成功')
except:
print('失败啦!
')
在测试的过程中,我还发现了一个问题,如果文件名是中文,解压之后文件名会出现乱码的情况。为了解决这个问题,我需要修改zipfile库的源码,将乱码问题修正。
随着思路的整理,我开始了真正的解密任务。老爸的压缩包很有价值,我不能让它始终保持加密状态。我开始考虑密码的问题,由于不知道密码的位数,我决定从4位数开始尝试。我编写了一个密码生成函数,生成可能的密码组合,然后依次尝试解密文件。
python
Copy code
import zipfile
import itertools
def extract_file(pwd):
try:
with zipfile.ZipFile('encrypted_file.zip', 'r') as zfile:
zfile.extractall(path='./', pwd=pwd.encode('utf-8'))
print('文件解压成功')
return True
except Exception as e:
print('失败啦!
', e)
return False
def generate_passwords(my_password_str):
for pwd in itertools.permutations(my_password_str, 4):
yield ''.join(pwd)
if __name__ == '__main__':
my_password_str = "abcdefghijklmnopqrstuvwxyz0123456789"
for pwd in generate_passwords(my_password_str):
print("正在测试密码:", pwd)
if extract_file(pwd):
print("解密成功,密码是", pwd)
break
然而,事情并不像我想象的那么简单。
几天的多线程尝试后,我仍然没有解开压缩包。我开始怀疑,是不是密码位数不是固定的4位呢?我不得不转变思路,决定从老爸那里找到一些线索。
最终,我从老爸那里得到了一个重要的线索:他的银行卡密码。我想,如果密码是由姓氏的首字母加上一些常见的数字组成,那解密的可能性会大大提高。于是,我根据这个线索修改了密码生成函数,开始尝试各种可能的组合。
python
Copy code
import zipfile
import itertools
def extract_file(pwd):
try:
with zipfile.ZipFile('encrypted_file.zip', 'r') as zfile:
zfile.extractall(path='./', pwd=pwd.encode('utf-8'))
print('文件解压成功')
return True
except Exception as e:
print('失败啦!
', e)
return False
def generate_passwords(my_password_str, nums):
for pwd in itertools.permutations(my_password_str, nums):
yield ''.join(pwd)
if __name__ == '__main__':
my_password_str = "abcdefghijklmnopqrstuvwxyz0123456789"
for pwd in generate_passwords(my_password_str, 5): # 姓氏首字母 + 123789
print("正在测试密码:", pwd)
if extract_file(pwd):
print("解密成功,密码是", pwd)
break
经过一周的努力,我终于解开了压缩包,密码竟然是这么简单:姓氏的首字母 + 123789。
我感到有些多虑了,但也为最终的成功感到欣慰。这次经历让我更加深刻地体会到,解密并不总是那么轻松,需要细心和耐心。
总结起来,这次任务让我不仅了解了文件加密和解密的基本原理,还深刻体会到了解密
的艰难与耗时。在这个过程中,我不仅学会了使用Python的压缩库来解压文件,还深入了解了密码生成、多线程处理和源码修改等技巧。
通过这次经历,我还思考了一些更加高效的解密思路。
例如,密码的获取不一定非要自己生成,还可以通过密码本来进行尝试。此外,解密过程中使用多线程或多进程破解,可以提高解密的速度,使得解密过程更加高效。
事情的结果虽然出乎意料,但也给了我很多收获。我不仅学到了关于密码和加密的知识,还锻炼了自己的解决问题的能力。在技术的世界里,每一个看似简单的任务都可能隐藏着许多挑战,而解决这些挑战正是技术人员不断成长的动力之一。
猜你喜欢
- 2024-10-21 只要2步 文件快速加密解密(文件加密如何破解)
- 2024-10-21 电脑文件加密真复杂!没有简单方法吗?
- 2024-10-21 python破解加密zip文件如此轻而易举
- 2024-10-21 如何解决压缩软件无法打开文件的常见问题
- 2024-10-21 Python 之如何暴力破解加密文件(python 密码破解)
- 2024-10-21 Excel表格密码忘记怎么办?十秒快速破解表格保护密码
- 2024-10-21 你的密码是如何被黑客破解的?(黑客破解家庭监控在线免费观看)
- 2024-10-21 如何将文件、文件夹设置成带有密码的压缩包?
- 2024-10-21 不知道怎么解密pdf加密的文档?分享几个解密方法
- 2024-10-21 如何将PDF文件的密码解除?四款软件快速完成
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)