原理:
加密字典文件中的明文,比对输入的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");
运行结果:
使用的库:hashlib
代码逻辑:
1.打开明文字典文件
2.加密明文字典为md5值
3.比对md5值和输入的md5值是否相等
4.相等打印出明文 即可
注意:
1.strip()函数一定要去除读入字典文件的空格 否则生成的md5的值 会出错
2.注意编码格式