摘要:看我如何用 20 行让女神对我转变态度的…
本文分享自华为云社区《女神相册明码遗记了,我只用Python写了20行代码~~~》,原文作者:LexSaints 。
一、事件是这样的
今早下班,公司女神小姐姐说,她去年去三亚旅游的照片打不开了,好奇问了一下才晓得,原来是,她把照片压缩了,而且还加了明码。然而明码不记得了,只记得是一串 6 位数字。话说照片压缩率也不高,而且还加密,难道是有什么可恶的小照片。
然而作为一个正(ba)直(gua)的技术人员,我跟她说:“这事交给我,python 写个脚本,帮你破解掉~~”
二、首先回顾一下女神的操作流程
对相册进行压缩的时候,增加了明码。LIke This ↓
三、须要明码关上相册
关上的时候,提醒这样的,须要输出明码。
四、python 脚本化解决
1、基本思路
首先如果想要 python 命令行来关上小姐姐相册,那么首先要找到尝试关上的命令行,即解压缩时应用的命令行。而后咱们应用 python 脚本写嵌套循环,一直的对 zip 文件进行尝试解压,而后找回实在的明码。
2、解压命令
首先压缩文件是 zip 格局的,咱们应用万能的 7z 命令来进行解压。
为什么不必 unzip 命令呢?(因为我试过了,unzip 无奈循环)
3、解压命令参数剖析
#7Z具体参数,上面只截取几个要害参数PS C:\Users\lex> 7z7-Zip 21.01 alpha (x64) : Copyright (c) 1999-2021 Igor Pavlov : 2021-03-09Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...] [@listfile]<Commands> a : Add files to archive #退出压缩 d : Delete files from archive e : Extract files from archive (without using directory names) t : Test integrity of archive #尝试明码,不解压...<Switches> -o{Directory} : set Output directory -p{Password} : set Password #设置明码参数
4、整顿 7z 解压命令
命令太简略,感觉都有点配不上我的才华和思路
7z -p 123456 t 三亚相册.zip# t:尝试关上,相似后盾运行# -p:尝试的明码# 最初是要解压的文件
5、关门!上 python 脚本
依据小姐姐的需要,明码是 6 位纯数字,那就帮我节俭了好大一段时间,只对 6 位纯数字进行尝试就能够了。三分钟就把脚本搞进去了
# -*- coding:utf-8 -*- import osimport subprocessimport zipfiledef brutecrack(): for a in range(1,10): for b in range(1,10): for c in range(1,10): for d in range(1,10): for e in range(1,10): for f in range(1,10): passwd=str(a)+str(b)+str(c)+str(d)+str(e)+str(f) command='7z -p'+passwd+' t F:/三亚相册.zip' #t 示意test,不进行理论解压,只测试明码 print(passwd) child=subprocess.call(command) #os.popen(command)#这个也能够用,然而不好监控解压状态 print(child) if child==0: print("相册明码为:"+passwd) returnif __name__ == '__main__': brutecrack()
五、找女神去...
面对着束手无策的女神,我运行起了脚本,不到 5 秒,相册胜利关上了。成果 gif ↓
关上之后,女神看我的眼神都变了。
点击关注,第一工夫理解华为云陈腐技术~