<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
1、通過 string模組 自動生成字典;
2、使用permutations()函數,對字典進行全排列;
3、使用 md5模組 對全排列的字典進行轉換;
4、使用了多執行緒,分別對5~18位元字串進行md5碰撞,以防止時間太長(雖然現在也要很久)。
def md5_poj(self, md5_value, k): if len(md5_value) != 32: print("error") return md5_value = md5_value.lower() # permutations() 全排列 for item in permutations(all_letters, k): item = "".join(item) if item == "hongrisec@2019": print(item) if md5(item.encode()).hexdigest() == md5_value: print('n success: ' + md5_value + ' ==> ' + item) self.__mdfive = 1
其中 if len(md5_value) != 32 判斷所輸入的md5是否為32位元的
def main(self): NT_md5 = input("請填寫MD5:") start_time = time() t_list = [] print("正在查詢...") # 新增執行緒 t_first = threading.Thread(target=self.md5_first, args=(NT_md5,)) t_first.daemon = 1 t_first.start() for k in range(5, 18): t = Process(target=self.md5_poj, args=(NT_md5, k)) # t = threading.Thread(target=self.md5_poj, args=(NT_md5, k)) t.daemon = 1 # 守護程式 t_list.append(t) # 啟動所有執行緒 for i in t_list: i.start() # 當 __mdfive == 1 時結束所有執行緒 while 1: if self.__mdfive: break print("n查詢結束!") print('使用了 %f 秒'%(time() - start_time))
import threading from multiprocessing import Process from hashlib import md5 from itertools import permutations from string import ascii_letters, digits, ascii_lowercase, ascii_uppercase from time import time all_letters = ascii_lowercase + '.,;@' + digits class MDfive: def __init__(self): self.__mdfive = 0 def md5_poj(self, md5_value, k): if len(md5_value) != 32: print("error") return md5_value = md5_value.lower() # permutations() 全排列 for item in permutations(all_letters, k): item = "".join(item) if item == "hongrisec@2019": print(item) if md5(item.encode()).hexdigest() == md5_value: print('n success: ' + md5_value + ' ==> ' + item) self.__mdfive = 1 # 判斷 md5 是否與空匹配 def md5_first(self, md5_firstvalue): if len(md5_firstvalue) != 32: elif md5_firstvalue == "31d6cfe0d16ae931b73c59d7e0c089c0": print("n密碼為空!") self.__mdfive = 1 def main(self): NT_md5 = input("請輸入MD5:") start_time = time() t_list = [] print("正在查詢...") # 新增執行緒 t_first = threading.Thread(target=self.md5_first, args=(NT_md5,)) t_first.daemon = 1 t_first.start() for k in range(5, 18): t = Process(target=self.md5_poj, args=(NT_md5, k)) # t = threading.Thread(target=self.md5_poj, args=(NT_md5, k)) t.daemon = 1 # 守護程式 t_list.append(t) # 啟動所有執行緒 for i in t_list: i.start() # 當 __mdfive == 1 時結束所有執行緒 while 1: if self.__mdfive: break print("n查詢結束!") print('使用了 %f 秒'%(time() - start_time)) if __name__ == '__main__': MDfive().main()
到此這篇關於基於python的MD5指令碼的文章就介紹到這了,更多相關python MD5指令碼內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45