记一次对md5密文的解密

前几天很幸运的拿下了某网站数据库的mdf备份,然而其中的md5密文拿到cmd5.com
怎么也解不开,无奈去搜网站源码,终于在PPConn2.asp文件里找到了 PPMD5 函数

Function PPMd5(Str)
PPMd5=Md5(Str)
PPMd5=StrReverse(Mid(PPMd5,29,4)&Mid(PPMd5,22,7)&Mid(PPMd5,15,7)&Mid(PPMd5,8,7)&Mid(PPMd5,1,7))

解析

  1. 首先对得到密码明文的32位 MD5值
  2. 对 MD5值 按 7,7,7,7,4 的字符数 倒序重排
  3. 对步骤2得到的32位字符串 倒序 得到最终密文

一番折腾,用Python实现了解密

def reverseStr(string):  
    return string[::-1] 
def fixStr(x,i):
    while(len(x)<i):
        x = x+ " "
    return x

f = file('pwd_md5.txt')
lines = f.readlines()

for line in lines:
   datas = line.split()
   a = [data for data in datas]
   print a[0] + " >>",
   a[0] = reverseStr(a[0])
   print a[0] + " >>",
   print a[0][25:32]+a[0][18:25]+a[0][11:18]+a[0]   [4:11]+a[0][0:4] + " ||",
   print fixStr(a[1],10)

f.close()

原理

读取 > 倒序 > 重排

效果预览
pwd-md5
接着拿去解密,密码到手😂