使用python3
#coding=utf-8
from os import system
source,lengthLimit,workSpace,aPP=r"e:\test.zip",4,r"e:\wsExtract",r'"C:\Program Files-Zipz.exe"'
cmdDel=r"rd /S /Q {0}".format(workSpace)
mkFactor=lambda :[chr(i) for i in range(48,127)]
def mkPasswdList(fact,size):
maxIndex,item,listSpace=len(fact)-1,[0]*size,[]
while 1:
listSpace.append(''.join([fact[i] for i in item])) #依据索引增量添加
if item==[maxIndex]*size: #出口,空间构造完毕
return listSpace
status=1 #状态变量,用于判断是否已经发生进位
for i in range(size,0,-1): #从左往右判断进位关系
if item[-i:]==[maxIndex]*i:
item[-i:]=[0]*i;item[-i-1]+=1;status=0
if status:
item[-1]+=1
def crackPasswd(source,lengthLimit,workSpace,aPP):
lengthLimit+=1
length=0
while length<lengthLimit:
length+=1
for passwd in mkPasswdList(mkFactor(),length):
crack=system(' '.join([aPP,'x',source,'-o'+workSpace,'-p{0}'.format(passwd)]),)
print(passwd)
if crack==0:
return passwd
else:
system(cmdDel)
print(crackPasswd(source,6,workSpace,aPP))#coding=utf-8
from os import