原理很简单,就是从网站读取数据。献丑了

保存为.vbs文件。

代码:
Option Explicit

If WSH.Arguments.Count <> 1 Then
  ShowUsage
  WSH.Quit
End If

If IsMD5(WSH.Arguments(0)) Then 
  WSH.Echo "Wait..."
  WSH.Echo CMD5(WSH.Arguments(0))
Else
  WSH.Echo "It's not a md5 string!"
End If



Sub ShowUsage()'MPL@bbs.pediy.com 2009.07.24
  WSH.Echo _
    "CMD5 v1.0" & vbCrLf & _
    vbCrLf & _
    "Usage: cscript //nologo """ & WSH.ScriptName & """ md5pass" & vbCrLf & _
    "e.g.:" & vbCrLf & _
    "cscript //nologo """ & WSH.ScriptName & """ 49ba59abbe56e057"
End Sub

Function IsMD5(sMD5)
  Dim oReg
  Set oReg = New RegExp
  oReg.Pattern = "^[0-9A-Za-z]{16}$|^[0-9A-Za-z]{32}$"
  IsMD5 = oReg.Test(sMD5)
  Set oReg = Nothing
End Function

Function CMD5(sMD5)
  Const TIMEOUT = 5000'打开网页的延时
  Dim oIE
  Dim bGet'是否已经查询到MD5对应的字符串
  Dim iTime'累加计时
  Dim sReturn'网页返回的与MD5对应的字符串相关的结果
  Dim sResult'sResult为函数返回结果  
  Set oIE = CreateObject("InternetExplorer.Application")

  oIE.Navigate "www.xmd5.org/index_cn.htm"
  iTime = 0
  Do While (oIE.Busy Or oIE.ReadyState <> 4) And (iTime <= TIMEOUT)
    WSH.Sleep 100
    iTime = iTime + 100
  Loop
  If iTime > TIMEOUT Then
    bGet = False
  Else
    oIE.Document.All("md5pass").Value = sMD5
    oIE.Document.All("f").Submit
    iTime = 0
    Do While (oIE.Busy Or oIE.ReadyState <> 4) And (iTime <= TIMEOUT)
      WSH.Sleep 100
      iTime = iTime + 100
    Loop
    If iTime > TIMEOUT Then
      bGet = False
    Else
      sReturn = oIE.LocationURL
      If LCase(sReturn) = "http://www.xmd5.org/md5/getpass.asp?type=no" Then
        bGet = False        
      Else
        bGet = True
        sResult = Mid(sReturn, 42, Len(sReturn) - 41)
      End If
    End If    
  End If

  If Not bGet Then
    oIE.Navigate "www.xmd5.org/index_cn2.htm"
    iTime = 0
    Do While (oIE.Busy Or oIE.ReadyState <> 4) And (iTime <= TIMEOUT)
      WSH.Sleep 100
      iTime = iTime + 100
    Loop
    If iTime > TIMEOUT Then
      bGet = False
    Else
      oIE.Document.All("md5pass").Value = sMD5
      oIE.Document.All("f").Submit
      iTime = 0
      Do While (oIE.Busy Or oIE.ReadyState <> 4) And (iTime <= TIMEOUT)
        WSH.Sleep 100
        iTime = iTime + 100
      Loop
      If iTime > TIMEOUT Then
        bGet = False
      Else
        sReturn = oIE.LocationURL
        If LCase(sReturn) = "http://www.xmd5.org/md5/getpass2.asp?type=no" Then
          bGet = False
        Else
          bGet = True
          sResult = Mid(sReturn, 43, Len(sReturn) - 42)          
        End If
      End If
    End If          
  End If
  
  If Not bGet Then    
    oIE.Navigate "www.cmd5.com"
    iTime = 0
    Do While (oIE.Busy Or oIE.ReadyState <> 4) And (iTime <= TIMEOUT)
      WSH.Sleep 100
      iTime = iTime + 100
    Loop
    If iTime > TIMEOUT Then
      bGet = False
    Else
      oIE.Document.All("ctl00_ContentPlaceHolder1_TextBoxq").Value = sMD5
      oIE.Document.All("ctl00_ContentPlaceHolder1_Button1").Click
      iTime = 0
      Do While (oIE.Busy Or oIE.ReadyState <> 4) And (iTime <= TIMEOUT)
        WSH.Sleep 100
        iTime = iTime + 100
      Loop
      If iTime > TIMEOUT Then
        bGet = False
      Else
        sReturn = oIE.Document.All("ctl00_ContentPlaceHolder1_LabelResult").InnerText
        If (sReturn = "验证码错误") Or (sReturn = "未查到") Then
          bGet = False
        Else
          bGet = True
          sResult = sReturn
        End If
      End If
    End If
  End If
  
  oIE.Quit
  Set oIE = Nothing
  If Not bGet Then sResult = "Not Found!"
  CMD5 = sResult
End Function