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