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()


