用python寫的簡單zip暴力破解器

2021-08-27 08:48:31 字數 1876 閱讀 1409

optparse是乙個功能強大的處理命令列函式。

首先匯入模組,建立opertionparser物件

import optparse

parser=optparse.optionparser()

然後用add_options()來定義命令列引數

parser.add_options('-f',dest='dname')

*當你定義完命令列引數之後,就可以使用parse_args()來解析命令列了

(options,args)=parser.parse_args()
注: 你也可以傳遞乙個命令列引數列表到 parse_args();否則,預設使用 sys.argv[1:]。

parse_args() 返回的兩個值:

options,它是乙個物件(optpars.values),儲存有命令列引數值。只要知道命令列引數名,如 file,就可以訪問其對應的值: options.file 。

args:它是乙個由 positional arguments 組成的列表。

import zipfile #匯入對zip檔案的處理模組

from threading import thread #當如執行緒模組

import optparse #匯入命令列處理模組

defextractzipfile

(zipfile1,password):

#這裡為了方便定義了乙個zip解密函式

zfile=zipfile.zipfile(zipfile1) #zipfile1接收你要破解的zip檔名,並定義乙個zfile物件

try: #這裡使用了異常處理機制

zfile.extractall(pwd=password.encode())#當密碼正確時,就會自動解壓

print( password) #這裡會輸出暴力破解得到的密碼

except:

pass

defmain

(): parser=optparse.optionparser('usage: %prog'+'-f -d ')#幫助提示資訊

parser.add_option('-f',dest='zname')#定義了-f和-d選項來接收zip檔案和字典檔案

parser.add_option('-d',dest='dname')

(options,args)=parser.parse_args()#解析命令列

if (options.zname==none) | (options.dname==none):

print(parser.usage)#輸出幫助提示資訊

exit(0)

else:

zname=options.zname

dname=options.dname

with open(dname,'r') as f:

for i in f:

pawwwd=i.strip()#這裡我比較疑惑,網上都說要使用strip('\n或\n\r'),我試了,都沒法輸出正確密碼,而什麼都沒加的話,卻成功了,不知道怎麼回事 哎~

## p=extractzipfile('mima.zip',pawwwd)

t=thread(target=extractzipfile,args=(zname,pawwwd))#這裡通過執行緒提高效率

t.start()

if __name__=='__main__':

main()

作為乙個剛入門python的小白,可能有很多不足的地方,希望各位大神指正。

用python寫爬蟲簡單嗎

所謂網路爬蟲,通俗的講,就是通過向我們需要的url發出http請求,獲取該url對應的http報文主體內容,之後提取該報文主體中我們所需要的資訊。下面是乙個簡單的爬蟲程式 http基本知識 當我們通過瀏覽器訪問指定的url時,需要遵守http協議。本節將介紹一些關於http的基礎知識。http基本流...

用Python寫乙個zip檔案的密碼破解程式

最近在讀 python絕技 運用python成為頂級黑客 一書,文中有如何運用python中zipfile自帶的方法破解zip檔案。短短的十幾行 就將乙個程式實現了。下面給出書中所用的 1 coding utf 8 2import zipfile 3import threading45 def ex...

linux下用python寫簡單的爬蟲程式

簡述下這個爬蟲程式的基本原理 geturl.py coding utf 8 import urllib defgethtml url page urllib.urlopen url html page.read return html html gethtml print html 新建乙個getu...