原理很简单,就是从网站读取数据。献丑了
保存为.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