亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

開(kāi)發(fā)思路

1、通過(guò) string模塊 自動(dòng)生成字典;

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

3、使用 md5模塊 對(duì)全排列的字典進(jìn)行轉(zhuǎn)換;

4、使用了多線程,分別對(duì)5~18位字符串進(jìn)行md5碰撞,以防止時(shí)間太長(zhǎng)(雖然現(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("請(qǐng)?zhí)顚?xiě)MD5:")
        start_time = time()
        t_list = []
        print("正在查詢(xún)...")
        # 添加線程
        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    # 守護(hù)程序
            t_list.append(t)
        # 啟動(dòng)所有線程
        for i in t_list:
            i.start()
        # 當(dāng) __mdfive == 1 時(shí)結(jié)束所有線程
        while 1:
            if self.__mdfive:
                break
        print("\n查詢(xún)結(jié)束!")
        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("請(qǐng)輸入MD5:")
        start_time = time()
        t_list = []
        print("正在查詢(xún)...")
        # 添加線程
        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    # 守護(hù)程序
            t_list.append(t)
        # 啟動(dòng)所有線程
        for i in t_list:
            i.start()
        # 當(dāng) __mdfive == 1 時(shí)結(jié)束所有線程
        while 1:
            if self.__mdfive:
                break
        print("\n查詢(xún)結(jié)束!")
        print('使用了 %f 秒'%(time() - start_time))

if __name__ == '__main__':
    MDfive().main()

到此這篇關(guān)于基于python的MD5腳本的文章就介紹到這了,更多相關(guān)python MD5腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python深入學(xué)習(xí)之裝飾器

    Python深入學(xué)習(xí)之裝飾器

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

    基于并發(fā)服務(wù)器幾種實(shí)現(xiàn)方法(總結(jié))

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

    Python圖像處理之圖像清晰度評(píng)價(jià)

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

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

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

    python使用xpath獲取頁(yè)面元素的使用

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

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

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

    最新pycharm安裝教程

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

    完美解決python遍歷刪除字典里值為空的元素報(bào)錯(cuò)問(wèn)題

    下面小編就為大家?guī)?lái)一篇完美解決python遍歷刪除字典里值為空的元素報(bào)錯(cuò)問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • 基于python+pandoc實(shí)現(xiàn)html批量轉(zhuǎn)word

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

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

    python超詳細(xì)實(shí)現(xiàn)完整學(xué)生成績(jī)管理系統(tǒng)

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

最新評(píng)論