zoukankan      html  css  js  c++  java
  • 暴力破解zip文件

     1 #coding=utf-8
     2 
     3 """
     4 用户输入-z参数指定要破解的zip文件,输入-d参数输入字典文件,即可暴力破解加密的zip文件
     5 """
     6 
     7 import optparse,zipfile,threading
     8 
     9 foundpassword = False   #当密码找到后,将此置为True,避免继续验证字典中的其它word,提高效率
    10 
    11 def extract_zipfile(a_zipfile,password):
    12    global foundpassword
    13    try:
    14       a_zipfile.extractall(pwd=password)  #若密码不对,会返回异常
    15       print('找到密码:',password.decode('utf-8'))
    16       foundpassword = True
    17    except:
    18       pass
    19 
    20 def main():
    21    usage = 'Usage: %prog -z <zipfile> -d <dictionaryfile>'
    22    parser = optparse.OptionParser(usage,version='v1.0')
    23    parser.add_option('-z',dest='zname',
    24                      help='待破解的zip文件')
    25    parser.add_option('-d',dest='dname',
    26                      help='指定字典文件')
    27    (options,args) = parser.parse_args()
    28    if options.zname == None or options.dname == None:
    29       print(parser.usage)
    30       exit(0)
    31    else:
    32       zname = options.zname
    33       dname = options.dname
    34    a_zipfile = zipfile.ZipFile(zname)
    35    dictFile = open(dname,'rb')
    36    for word in dictFile:
    37       password = word.strip(b'
    ')
    38       t = threading.Thread(target=extract_zipfile,args=(a_zipfile,password))
    39       t.start()
    40       if foundpassword == True:
    41          exit(0)
    42 
    43 if __name__ == '__main__':
    44    main()
    45    

    运行后的结果为:

    1 c:Python34python.exe CrackZipfile.py  -z e:Archive.zip -d e:dictionary.txt
    2 找到密码: 1q3e5t
  • 相关阅读:
    最近。。。。。。。。。。。
    SQLServer中 多行合成一行 的方法.
    操作Excel
    minheight和height
    提高网页效率的14条准则
    IE和FireFox的Javascript的事件和事件处理总结
    id和class到底要用哪一个?
    XML.parentNode 与 parentElement 的说明
    window.event 对象详解
    padding和margin到底要用哪一个?
  • 原文地址:https://www.cnblogs.com/darkpig/p/5683799.html
Copyright © 2011-2022 走看看