MD5截断比较验证

继上篇MD5截断比较验证文章之后有朋友提示除了数字以外,许多字母数字混合的明文在MD5加密之后也是可以达到同样效果的

同时在De1CTF中Web4题目中遇到了另一种较为特殊的截断比较验证,如图所示:

如红色方框中的提示,这段提示的意思是验证明文(Code)+随机字符串(fTyHgZII)在md5加密之后截取前六位等于b77333

在这种情况下单靠第一篇的数字爆破脚本便很难爆破出真正的Code,朋友给我分享了如下的爆破脚本:

import hashlib

addStr = 'TSw8BK8m'
knownMd5 = 'd3b6da'

dict = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'

def md5(text):
    return hashlib.md5(str(text).encode('utf-8')).hexdigest()

for i in dict:
  for j in dict:
      for k in dict:
          for l in dict:
            x = i + k + j + l
            b = x + addStr
           codeMd5 = md5(b)
            if codeMd5[:6] == knownMd5:
                print(x)

运行结果如图:

原文地址:https://www.cnblogs.com/yesec/p/11300841.html