Python安全之使用Python進行MD5解密

使用hashlib模塊進行MD5解密

我們在實際工作中經常會遇到拿到了MD5值,希望得到明文的情況。比如我們在使用BURP進行密碼破解後,卻苦於不知道對應密碼錶的明文是什麼。當然你可以根據密碼錶或者用戶名錶的數量去推算,但這顯然太LOW了。下面這段小程序可以快速幫你從密碼錶中找到對應的明文。也可以作爲日常的MD5解密之用。
BURP暴力破解

1. 代碼:

代碼中已經有詳細的註釋,在此就不一一說明了。

import hashlib
import datetime
#import sys
def Findmd5(args):
    md=args.hashvalue
    starttime=datetime.datetime.now()
    for i in open(args.file):
        md5=hashlib.md5()   #獲取一個md5加密算法對象
        rs=i.strip()    #去掉行尾的換行符
        md5.update(rs.encode('utf-8'))  #指定需要加密的字符串
        newmd5=md5.hexdigest()  #獲取加密後的16進制字符串
        #print newmd5
        if newmd5==md:
            print '明文是:'+rs    #打印出明文字符串
            break
        else:
            pass

    endtime=datetime.datetime.now()
    print endtime-starttime	#計算用時,非必須

if __name__=='__main__':
    import argparse #命令行參數獲取模塊
    parser=argparse.ArgumentParser(usage='Usage:./findmd5.py -l 密碼文件路徑 -i 哈希值 ',description='help info.')   #創建一個新的解析對象
    parser.add_argument("-l", default='wordlist.txt', help="密碼文件.", dest="file")    #向該對象中添加使用到的命令行選項和參數
    parser.add_argument("-i", dest="hashvalue",help="要解密的哈希值.")

    args = parser.parse_args()  #解析命令行
    Findmd5(args)

2. 使用:

參數說明:
-l:密碼錶文件
-i:MD5值

python findmd5.py -l wordlist.txt -i 934b535800b1cba8f96a5d72f72f1611
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章