md5的生成与还原

延续之前的解密器,今天就用它来还原MD5
(操作环境:python3)

操作环境

win10,python3

代码展示

import string
from hashlib import md5

#生成MD5
chars=string.digits+string.ascii_uppercase+string.ascii_lowercase #数字、字母的大小写组成一个字符串chars
message='admin123' #用于加密的一段信息
m=md5() #生成一个MD5对象
m.update(message.encode('utf-8')) #一定要encode,不然会出错
print(m.hexdigest())

#以上几行就生成了MD5,将它打印出来就OK了
#下面就将它还原回去(假装不知道原message是什么)

len=len(meaasge)
#for len in range(10):    #这里设已知message的长度,如果未知,还要加这层循环
for i in range(62**len):
    p=''
    for j in range(len):  #这里就是利用了解密器的方法
        a=i%62            #通过一个一个匹配,得到原message
        p=p+chars[a]
        i=i//62
        if j==len-1:
            p=p[::-1]	  
            n=md5()		  #将生成的密码都分别转换成MD5,与已知的MD5比较,如果一样,那么这个密码就是原message
            n.update(p.encode('utf-8'))
            if n.hexdigest()==m.hexdigest():
                print(p)

结果

我设message=‘0123’
出来的结果是:
eb62f6b9306db575c2d596b1279627a4
0123

注意事项

1、建议不要设太长的message,太长等的时间很长,尽量设短点
2、如果"if n.hexdigest()==m.hexdigest():"这段代码出问题,可以试着将之前的"print(m.hexdigest())"这行代码去掉
我的是没问题,但有人的出了问题
3、有关MD5介绍的参考链接:MD5

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值