暴力破解MD5密码[单线程]

原理:

加密字典文件中的明文,比对输入的md5密文,如果相等那么这个明文就是密码

源码:

#!/usr/bin/python3
import sys
import hashlib 
counter = 1 #记录密码个数
pass_in = input("Please enter the MD5 Hash:");
pwfile = input("please enter the password file name:");
try:
    pwfile = open(pwfile,"r");
except:
    print("\nFile Not Found.");
    quit()

for password in pwfile.readlines():
    #加密从文件中读到的原文
    filemd5 = hashlib.md5(password.encode(encoding="UTF-8").strip()).hexdigest();
  
    print ("MD5:%s : Trying password number %d :%s " %(filemd5,counter,password.strip()));
    counter+=1;
    #比对 字典文件中加密的原文md5值和输入的md5是否相等 如果相等跳出循环 输出原文
    if pass_in == filemd5:
        print("Match Found.\033[0;31mPassword is :%s \033[0m" %(password) );
        break;
else:print("\n Password Not Found");

运行结果:

暴力破解MD5密码[单线程]_第1张图片

使用的库:hashlib

代码逻辑:

1.打开明文字典文件

2.加密明文字典为md5值

3.比对md5值和输入的md5值是否相等

4.相等打印出明文 即可

注意:

1.strip()函数一定要去除读入字典文件的空格 否则生成的md5的值 会出错

2.注意编码格式

你可能感兴趣的:(Python)