首页 > 代码库 > 暴力穷举zip压缩文件的密码
暴力穷举zip压缩文件的密码
生成密码的方式类似与时钟,末尾遍历完了第k位所有的字符,就让第k位的前一位到下一位字符,第k位回到第0个字符。
对python还不太熟悉,效率比较低,但是能破解简单的密码。
import zipfile #密码可能有的字符 testSetstr = "w.abcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#$%&‘()*+,-/:;<=>?@[\]^_`{|}~" # testSetstr = "0123456789" # testSetLen = len(testSetstr) #字符中长度 maxtestLen = 5 #要猜的密码的最大长度,时间耗时越久。 filename = ‘test.zip‘ #要解压的文件名 filedir = ‘data/‘ #解压路径 def testPassword(teststr): r = zipfile.is_zipfile(filename) if r: fz = zipfile.ZipFile(filename,‘r‘) try: for file in fz.namelist(): fz.extract(file,filedir,pwd=str.encode(teststr)) print("密码是",teststr) return True except: pass fz.close() else: print(‘不是zip文件,不能解压‘) return True return False def test(n): alist = [0] * n while(alist[0] < testSetLen): testlist = [] for i in range(n): testlist.append(testSetstr[alist[i]]) teststr = "".join(testlist) if(testPassword(teststr)): return True alist[n - 1] += 1 for i in range(n-1,0,-1): if(alist[i] > testSetLen - 1): alist[i] = 0 alist[i - 1] += 1 if(i - 1 == 0): print("进度 ",100.0 * alist[i - 1] / testSetLen ,"%") else: break return False def main(): for i in range(maxtestLen): print("正在测试长度为",i + 1,"的密码。") if(test(i + 1)): return main()
暴力穷举zip压缩文件的密码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。