常常会从网络上下载一些带密码的压缩包,想要获取里面的内容,往往就要给提供商支付一些费用.想要白嫖其中的内容,常见的做法是百度搜索一些压缩包密码破解软件,但后果相信体验过的人都知道。 0 y. m9 I$ {; T) ]* n 一、破解原理 i- j7 G5 w: e
其实原理很简单,一句话概括就是「大力出奇迹」,Python 有两个压缩文件库:zipfile 和 rarfile,这两个库提供的解压缩方法 extractall()可以指定密码,这样的话首先生成一个密码字典(手动或用程序),然后依次尝试其中的密码,如果能够正常解压缩表示密码正确。6 l/ v. m2 \% X$ O' v+ `, S: f& U 二、实验环境8 B* F3 ~8 s l$ u/ |; K. c
本文采取的虚拟环境为 Pipenv.7 h3 W$ N# P4 x$ ?6 q
库: % z4 x5 h/ E! M. O b z
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')
四、使用 E+ c* m9 {9 ~; N& l: s) F 如果想要使用上述代码,我们只需在命令行执行python main.py <filename>即可。例如python main.py test.zip1 P# y8 J5 {: N, I Z3 l
运行结果:( m" T# U5 B& g8 K