常常会从网络上下载一些带密码的压缩包,想要获取里面的内容,往往就要给提供商支付一些费用.想要白嫖其中的内容,常见的做法是百度搜索一些压缩包密码破解软件,但后果相信体验过的人都知道。 8 q# i; {9 F Y" U8 B) g 一、破解原理7 M+ d( I8 E \# p' {
其实原理很简单,一句话概括就是「大力出奇迹」,Python 有两个压缩文件库:zipfile 和 rarfile,这两个库提供的解压缩方法 extractall()可以指定密码,这样的话首先生成一个密码字典(手动或用程序),然后依次尝试其中的密码,如果能够正常解压缩表示密码正确。9 D+ k& |2 t9 e% @& h3 [& O7 p 二、实验环境 $ n( P ]3 [5 Q! ?3 e5 R. B 本文采取的虚拟环境为 Pipenv.' q9 T4 ^2 D+ I/ K) C
库:8 r6 U2 Q( n- \* L
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')
四、使用 5 E2 y$ e. N3 H) @7 y' l/ k' { 如果想要使用上述代码,我们只需在命令行执行python main.py <filename>即可。例如python main.py test.zip & w: ^# _* X4 L& E! j" q 运行结果: , {, R: O, C8 K+ a+ |5 Y