您好,登錄后才能下訂單哦!
本篇文章為大家展示了python中怎么利用itertools生成密碼字典r密碼,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
腳本功能:
利用itertools生成密碼字典(迭代器形式)
多線程并發(fā)從密碼字典中取出密碼進(jìn)行驗(yàn)證
驗(yàn)證成功后把密碼寫入文件中保存
#!/usr/bin/env python # -*- coding: UTF-8 -*- # Author:Leslie-x import itertools as its import threading import rarfile import os words = '0123456789abcdefghijklmnopqrstuvwxyz' # 涉及到生成密碼的參數(shù) flag = True # 是否關(guān)閉線程的標(biāo)志 def append_on_file(password,file_name): # 把解析出的密碼寫入到文件中 with open('password.txt', 'a', encoding='utf8') as f: text = file_name+':'+password + '\n' f.write(text) def get_password(min_digits, max_digits, words): """ :param min_digits: 密碼最小長(zhǎng)度 :param max_digits: 密碼最大長(zhǎng)度 :param words: 密碼可能涉及的字符 :return: 密碼生成器 """ while min_digits <= max_digits: pwds = its.product(words, repeat=min_digits) for pwd in pwds: yield ''.join(pwd) min_digits += 1 def extract(File,file_name): """ 若線程關(guān)閉標(biāo)志為True,就執(zhí)行循環(huán),從密碼生成器中取出密碼,驗(yàn)證密碼是否正確 密碼正確,則把密碼寫入文件中,并將線程關(guān)閉標(biāo)志flag設(shè)定為False,通知其他線程關(guān)閉 """ global flag while flag: p = next(passwords) try: File.extractall(pwd=p) # 打開壓縮文件,提供密碼... flag = False print("password is " + p) ###破解到密碼 append_on_file(p,file_name) break except: print(p) def mainStep(file_path,file_name): """ 多線程并發(fā)驗(yàn)證密碼 :param file_path: rar壓縮文件路徑列表 :return: """ file = rarfile.RarFile(file_path) for pwd in range(3): t = threading.Thread(target=extract, args=(file,file_name)) t.start() if __name__ == '__main__': # 主程序 base_dir = r'E:\迅雷下載\rar' for file_info in os.listdir(base_dir): try: # 拼接壓縮文件路徑 file_path = os.path.join(base_dir, file_info) # 壓縮文件名稱 file_name = file_info.split('.')[0] # 生成密碼字典:密碼長(zhǎng)度最小為4,最大為11 passwords = get_password(4, 11, words) # 將任務(wù)分發(fā)給線程執(zhí)行 mainStep(file_path,file_name) except: pass
上述內(nèi)容就是python中怎么利用itertools生成密碼字典r密碼,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。