可能很多人都遇到过这种情况:
1. 费尽千辛万苦,从网上找到合适的资源、等百度云龟速下载完成,解压时才发现需要密码(压缩包里通常还会附上收款地址)……
2. 自己多年前珍藏的小秘密/重要文件,解压时却怎么也想不起压缩包密码……
两种格式的加密压缩包
今天分享一个技巧,教你破解压缩包密码(包括rar、zip格式)。
录制了一段视频,从头开始,演示了命令行和gui两种工具的使用;
打包整理、上传了我用到的所有工具(包含自定义的密码本)。
先说原理:暴力破解(撞库)
简单来说,就是穷举所有可能的密码,挨个尝试,直到找出正确的密码。
所以,理论上,可以破解任何密码!
自己写个程序,生成所有可能的密码、挨个尝试,代码也很容易理解。
def brutal_extract(self, lengths=[4, ], lower=False, upper=False, digit=False, punctuation=False): ''' # 遍历所有可能的密码,暴力破解 :param lengths: 密码长度,可以指定所有需要考虑的长度,如[4, 5, 6]等 :param lower: 是否考虑小写字母 :param upper: 是否考虑大写字母 :param digit: 是否考虑数字 :param punctuation: 是否考虑标点符号 :return: ''' import string # 用于生成密码本 from itertools import combinations # 用于生成所有可能的密码 passward_dict = "" if lower: passward_dict += string.ascii_lowercase if upper: passward_dict += string.ascii_uppercase if digit: passward_dict += string.digits if punctuation: passward_dict += string.punctuation print("密码本: {} 密码长度: {} ".format(passward_dict, lengths)) count = 0 for length in lengths: for passward in combinations(passward_dict, length): passward = "".join(passward) count += 1 print(passward, end=" ") if self.extract(passward): print() print("一共尝试了{}种可能".format(count)) return print("对不起,暂未找到,请尝试: 1. 其他密码长度 2. 包含更多种类的密码字符") # 尝试解压 def extract(self, passward): try: self.fp.extractall(path=self.tatget_path, pwd=passward.encode()) print() print('成功破解该压缩包,密码为: ' + passward) self.fp.close() return True except: pass
我这个示例密码很简单(长度短、类型简单,仅包含小写字母和数字),所以跑起来很快,CPU下1分钟左右就能找到。
但如果你不知道密码的范围、类型,完全瞎猜的话,需要考虑所有长度、所有字符类型(小写字母、大写字母、数字、标点符号),那就需要很大的计算量了。
可能的优化方法有:多线程并行、GPU加速等,有兴趣的可以自己尝试。
cRARk,自1996年诞生,历经5代完善,目前号称世界上最快的rar解压工具,支持Win32/64, Linux, Mac OS多种平台、GPU加速、各种性能优化!
官方工具没有gui界面,需要通过命令行使用,示例如下:
这个工具会自动加载password.def的配置,来尝试各种可能,这里分享一个比较完备的配置方案:
crack passward.def文件
对比一下CPU和GPU的速度:
可以看到,GPU比CPU快了几十倍,每秒可以尝试2万多种可能。
6位数字的银行卡密码,一共有10^6种可能性,可以在1分钟内破解
那为啥银行卡密码还那么安全呢?
因为我银行卡里的钱不值得黑客浪费那1分钟
因为银行不可能给你尝试那么多次!
还是上面的工具,有热心的第三方提供了人性化的GUI界面,极大便利了非程序员们:
本期资源链接:
python完整程序:
https://gist.github.com/weidafeng/80b4b73f2a1718378220c3a46e8af04f
RAR版工具:http://www.crark.net/#download
ZIP版工具:http://www.crark.net/crark-7zip.html
GUI界面版(仅win):http://www.crark.net/download/crar
我的
足迹
投稿
反馈
客服
客服QQ:104****84 (点击直接对话)
客服电话:400****16(查看完整电话)
客服邮箱:service@liesan.com
管理仅处理交易投诉、举报、帐号、资金等平台使用问题;
商品问题请咨询各商品详情页面中显示的商家客服QQ。