|
大师,能帮我诊断下这个段过程在哪里出问题了嘛,研究了好几天一直没成功,万分感谢!!!思路:想调用网页的加密函数encryptByDES(message, key)对账号密码进行加密,然后作为post的数据登录网页。
附件是网页上下载的加密需要用到的js文件和宏,可以的话能指导下怎么实现调用js加密功能嘛,谢谢。
Dim strText, strJS, strJSFun As String
Sub js()
'获取密钥,此处可正常获取,直接贴密钥。
key1 = "11b265d969ea48269feb5c9e46ba58ef"
With CreateObject("Microsoft.XMLHTTP") '获取加密函数function encryptByDES(message, key)
.Open "GET", "http://XXXX/resources/static/js/login/login.js", False
.send
strJS = .responsetext
strJSFun = Mid(strJS, InStr(strJS, "function encryptByDES(message, key)")) '从js文件中提取函数encryptByDES(message, key)
temp = InStr(strJSFun, "function setPassPlaceholder()") - 1
strJSFun = Left(strJSFun, temp)
Range("a1") = strJSFun
strJSFun = Replace(strJSFun, "(message, key)", "(message=123456789, key=key1)") '把加密函数的参数替换为需要加密的账号和密钥
Range("b1") = strJSFun '调试:打印加密函数
'获取加密需要的js文件
.Open "GET", "http://XXXX/resources/static/cryptojs/rollups/tripledes.js", False
.send
strJS = .responsetext
.Open "GET", "http://XXXX/resources/static/cryptojs/components/mode-ecb.js", False
.send
strJS = strJS & ";" & .responsetext
End With
a = JSEval(strJS & ";" & strJSFun & ";") 'a应该为加密后的账号
Debug.Print a
End Sub
‘JavaScript执行环境函数
Function JSEval(s As String) As String
With CreateObject("MSScriptControl.ScriptControl")
.Language = "javascript"
JSEval = .Eval(s) ’这一句出错,提示少”)“,检查不出哪里有问题。
Debug.Print JSEval
End With
End Function
|
|