MD5在线加密解密工具主要功能包括:

  • 对输入的明文进行MD5加密处理,并返回其所对应的密文
  • 针对md5加密算法进行反向查询,即找出密文所对应的明文。通过穷举字符组合的方式,创建了明文与密文对应的查询数据库。
  • ps:本项目中定义的明文形式为:6位数字(0-9),如,342564

MD5加密解密原理:

加密原理:MD5消息摘要算法是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),通常用一个32位的16进制字符串表示,用于确保信息传输完整一致。
解密原理:MD5对与目前人类(计算能力)而言是无法解密的,目前的MD5解密方法是建立一个大型数据库,将每个人的MD5数据存储在这个数据库里面,然后将所需要解密的密码放入该库对比找到其所对应的原码,如果没有对比到数据,说明该密没有被记录过,也就是说没有办法解密了。附:“权威”在线解密工具https://www.cmd5.com/

MD5在线加密解密工具流程图:

python md5加密 key python md5 解密_文件



  1. 首先,生成MD5加密数据库中的数据信息,即明文与密文相对应的查询“数据库”(在本项目中仅写入至文件)
from string import  digits
# Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。hashlib库进行md5加密,操作如下
import hashlib
# 显示程序运行的进度条的第三方模块
from tqdm import tqdm
import json

db = {}
for item1 in tqdm(digits):
    for item2 in digits:
        for item3 in digits:
            for item4 in digits:
                for item5 in digits:
                    for item6 in digits:
                        passwd1 = item1  + item2 + item3 + item4 + item5 + item6
                        # md5加密需要的字符串为bytes类型, 将utf-8的编码格式编码成bytes类型
                        passwd = passwd1.encode('utf-8')
                        md5_passwd = hashlib.md5(passwd).hexdigest()
                        db[md5_passwd] = passwd1

# 将db字典的信息以json的格式存储到md5.json文件中
json.dump(db, open('md5.json', 'w'))
print("生成数据库成功.......")
  1. 然后,项目的主流程
import hashlib
import json

filename = 'md5.json'
db = json.load(open(filename))

choice = input("请选择您的操作(0-加密,1-解密):")

if choice == "0":
    passwd = input("请输入需要加密的字符串:").encode('utf-8')
    md5_passwd = hashlib.md5(passwd).hexdigest()
    print("%s加密后的密码为:%s" % (passwd, md5_passwd))
elif choice == "1":
    md5_passwd = input("请输入需要解密的字符串:")
    # db中如有键值 md5_passwd,则返回相应的value值,即为True;否则返回None,即为False
    passwd = db.get(md5_passwd)
    if passwd:
        print("%s解密后的明文为:%s" % (md5_passwd, passwd))
    else:
        print("%s无法进行解密" % md5_passwd)
else:
    print("请输入正确选择")

执行结果:

python md5加密 key python md5 解密_Python_02


python md5加密 key python md5 解密_文件_03


python md5加密 key python md5 解密_python md5加密 key_04