常常会从网络上下载一些带密码的压缩包,想要获取里面的内容,往往就要给提供商支付一些费用.想要白嫖其中的内容,常见的做法是百度搜索一些压缩包密码破解软件,但后果相信体验过的人都知道。 3 E P. a' g# w$ Z. m 一、破解原理( B- a7 h# L# f3 x1 ]( G. F
其实原理很简单,一句话概括就是「大力出奇迹」,Python 有两个压缩文件库:zipfile 和 rarfile,这两个库提供的解压缩方法 extractall()可以指定密码,这样的话首先生成一个密码字典(手动或用程序),然后依次尝试其中的密码,如果能够正常解压缩表示密码正确。 ( w' Y1 b/ }0 u/ e8 ~' F二、实验环境 ' [' \" p1 |) I! x 本文采取的虚拟环境为 Pipenv. " z3 B4 K6 y! f+ G库:( g2 s A Y+ }$ P
if __name__ == '__main__':
filename = sys.argv[1]
if os.path.isfile(filename) and filename.endswith(('.zip', '.rar')):
decryptRarZipFile(filename)
else:
print('Must be Rar or Zip file')
四、使用 8 ?5 l- z9 X' {) y8 g5 I 如果想要使用上述代码,我们只需在命令行执行python main.py <filename>即可。例如python main.py test.zip % _8 P2 q/ h5 Z% _# h U @: G. @ 运行结果: . R, B! ^, V5 }7 J" ^% m- j$ j