python调用WinRAR暴力获取压缩密码 用网址做解压密码
原理很简单:python通过调用WinRAR.exe暴力获取压缩密码,要求必须安装WinRAR或者有WinRAR.exe这个文件(单个文件就行)。个人实测zip和rar格式都能用。
缺点:费时间,费cpu
一、不生成密码本:
4位全数字密码:
import os import time def Jy(): print('开始破解:') for i in range(10000): myStr=str(i).zfill(4)#生成压缩包密码 #这里修改WinRAR.exe所在路径、压缩包路径和解压目录(C:\Program Files (x86)\WinRAR\WinRAR.exe、52pojie.rar、52pojie) jy=r'"C:\Program Files (x86)\WinRAR\WinRAR.exe" -ibck -y x -p%s 52pojie.zip 52pojie'%myStr if os.system(jy)==0: print('密码正确!',myStr) ent=time.time() print('破解成功!用时%f分'%((ent-stm)/60)) return else: print('密码错误:',myStr) ent=time.time() print('破解失败,用时%f分'%((ent-stm)/60)) stm=time.time() if os.path.exists('52pojie')==False:#判断当前py文件所在目录下是否存在52pojie文件夹,如果没有则建立 os.mkdir('52pojie') Jy() else:#存在则进行下一步 Jy()
4位数字字母密码:多几位就是把下面多复制几遍而已
import os import time def Jy(): print('开始破解:') for a in range(len(str)): for b in range(len(str)): for c in range(len(str)): for d in range(len(str)): myStr=str[a]+str[b]+str[c]+str[d]#生成压缩包密码 #这里修改WinRAR.exe所在路径、压缩包路径和解压目录(C:\Program Files (x86)\WinRAR\WinRAR.exe、52pojie.rar、52pojie) jy=r'"C:\Program Files (x86)\WinRAR\WinRAR.exe" -ibck -y x -p%s 52pojie.zip 52pojie'%myStr if os.system(jy)==0: print('密码正确!',myStr) ent=time.time() print('破解成功!用时%f分'%((ent-stm)/60)) return else: print('密码错误:',myStr) ent=time.time() print('破解失败,用时%f分'%((ent-stm)/60)) stm=time.time() str='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'#这里加上你想要的字符 if os.path.exists('52pojie')==False:#判断当前py文件所在目录下是否存在52pojie文件夹,如果没有则建立 os.mkdir('52pojie') Jy() else:#存在则进行下一步 Jy()
二、生成密码本,然后破解:多几位就是把下面多复制几遍而已
import time stm=time.time() dic = open('password.txt', 'a')#在当前py文件所在目录生成password.txt文件 str='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'#这里加上你想要的字符 for a in range(len(str)): for b in range(len(str)): for c in range(len(str)): for d in range(len(str)): pwd=str[a]+str[b]+str[c]+str[d]#生成4位数字字母密码,通过增加/删除for语句并且在这句后面加上/删除相应的str来自定义密码位数 dic.write(pwd) dic.write('\n') print('密码正在写入文件:',pwd) dic.close() ent = time.time() print('成功生成密码本!用时%f分'%((ent - stm)/60))
import os import time def Jy(): print('开始破解:') for myStr in myfile: myStr=myStr.replace('\n','') # 这里修改WinRAR.exe所在路径、压缩包路径和解压目录(C:\Program Files (x86)\WinRAR\WinRAR.exe、52pojie.rar、52pojie) jy=r'"C:\Program Files (x86)\WinRAR\WinRAR.exe" -ibck -y x -p%s 52pojie.zip 52pojie'%myStr if os.system(jy)==0: print('密码正确!',myStr) break else: print('密码错误:',myStr) ent=time.time() print('用时%f分'%((ent-stm)/60)) stm=time.time() path='password.txt' myfile=open(path,'r',errors='ignore') if os.path.exists('52pojie')==False:#判断当前py文件所在目录下是否存在52pojie文件夹,如果没有则建立 os.mkdir('52pojie') Jy() else:#存在则进行下一步 Jy()
三随机密码破解 想几位就直接把5改成几就行 下面实例针对用网址做解压密码的实例
import os import time import random def Jy(): print('开始破解:') var = 1 while var == 1 : myStr=''.join(random.sample(str,5))+'.com'#生成压缩包密码 myStr2='www.'+myStr#生成压缩包密码 jy=r'"C:\Program Files (x86)\WinRAR\WinRAR.exe" -ibck -y x -p%s 52pojie.zip 52pojie'%myStr jy2=r'"C:\Program Files (x86)\WinRAR\WinRAR.exe" -ibck -y x -p%s 52pojie.zip 52pojie'%myStr2 if os.system(jy)==0 or os.system(jy2)==0: print('密码正确!',myStr) ent=time.time() print('破解成功!用时%f分'%((ent-stm)/60)) return else: print('密码错误:',myStr) ent=time.time() print('破解失败,用时%f分'%((ent-stm)/60)) stm=time.time() str='0123456789abcdefghijklmnopqrstuvwxyz'#这里加上你想要的字符 if os.path.exists('52pojie')==False:#判断当前py文件所在目录下是否存在52pojie文件夹,如果没有则建立 os.mkdir('52pojie') Jy() else:#存在则进行下一步 Jy()