欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于python的MD5腳本開發(fā)思路

 更新時間:2022年03月30日 15:52:04   作者:spmonkey  
這篇文章主要介紹了基于python的MD5腳本,通過 string模塊自動生成字典,使用permutations()函數(shù),對字典進行全排列,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下

開發(fā)思路

1、通過 string模塊 自動生成字典;

2、使用permutations()函數(shù),對字典進行全排列;

3、使用 md5模塊 對全排列的字典進行轉換;

4、使用了多線程,分別對5~18位字符串進行md5碰撞,以防止時間太長(雖然現(xiàn)在也要很久)。

md5碰撞函數(shù)

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位的

主函數(shù)

def main(self):
        NT_md5 = input("請?zhí)顚慚D5:")
        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腳本內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python深入學習之裝飾器

    Python深入學習之裝飾器

    這篇文章主要介紹了Python深入學習之裝飾器,裝飾器(decorator)是一種高級Python語法,本文全面介紹了Python中的裝飾器,需要的朋友可以參考下
    2014-08-08
  • 基于并發(fā)服務器幾種實現(xiàn)方法(總結)

    基于并發(fā)服務器幾種實現(xiàn)方法(總結)

    下面小編就為大家分享一篇基于并發(fā)服務器幾種實現(xiàn)方法(總結),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • Python圖像處理之圖像清晰度評價

    Python圖像處理之圖像清晰度評價

    圖像清晰度評價,顧名思義就是能夠通過一張標準圖,對同一組相機拍攝的照片進行清晰度評價。本文將利用Python實現(xiàn)這一效果,需要的可以參考一下
    2022-12-12
  • Windows環(huán)境打包python工程為可執(zhí)行程序的詳細過程

    Windows環(huán)境打包python工程為可執(zhí)行程序的詳細過程

    我的開發(fā)環(huán)境是windows7,然后系統(tǒng)是64位,安裝的python和wxpython都是32位的,本文記錄我怎樣用pyinstaller打包我用python開發(fā)的工程,在網(wǎng)上搜索了很多資源,基本上都是不全的,所以我在這兒記錄一下這個比較完整的過程,一起看看吧
    2024-01-01
  • python使用xpath獲取頁面元素的使用

    python使用xpath獲取頁面元素的使用

    本文主要介紹了python使用xpath獲取頁面元素的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Python實現(xiàn)單例模式的5種方法

    Python實現(xiàn)單例模式的5種方法

    單例模式應該是應用最廣泛,實現(xiàn)最簡單的一種創(chuàng)建型模式。本文詳細的介紹了Python實現(xiàn)單例模式的5種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 最新pycharm安裝教程

    最新pycharm安裝教程

    這篇文章主要介紹了最新pycharm安裝教程,需要的朋友可以參考下
    2020-11-11
  • 完美解決python遍歷刪除字典里值為空的元素報錯問題

    完美解決python遍歷刪除字典里值為空的元素報錯問題

    下面小編就為大家?guī)硪黄昝澜鉀Qpython遍歷刪除字典里值為空的元素報錯問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • 基于python+pandoc實現(xiàn)html批量轉word

    基于python+pandoc實現(xiàn)html批量轉word

    pandoc是一個強大的文檔格式轉換工具,支持豐富的格式轉換,并盡可能的保留原來的排版,號稱文檔格式轉換的瑞士軍刀,本文將給大家介紹一下使用python搭配pandoc實現(xiàn)html批量轉word,感興趣的朋友可以參考閱讀下
    2023-09-09
  • python超詳細實現(xiàn)完整學生成績管理系統(tǒng)

    python超詳細實現(xiàn)完整學生成績管理系統(tǒng)

    讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java實現(xiàn)一個完整版學生成績管理系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2022-03-03

最新評論