现在的位置: 首页 > 综合 > 正文

C#中使用MScript.ocx调用JS

2012年11月29日 ⁄ 综合 ⁄ 共 1516字 ⁄ 字号 评论关闭

下面是使用MScript.ocx组件调用腾讯http://qb.qq.com网站的JS登录密码加密方法:

 1 public bool GetPasswd(string verifyCode, string passwd, ref string passwdValue, ref string errMsg)
 2         {
 3 
 4             try
 5             {
 6                 MSScriptControl.ScriptControlClass sc = new MSScriptControl.ScriptControlClass();
 7                 sc.Language = "javascript";
 8                 // 得到JS文件内容
 9                 string html = NetWorkHelper.GetHtml(NetWorkHelper.CreateWebRequest("http://qb.qq.com/js/ps.js", new CookieContainer()));
10 
11                 sc.AddCode(html);
12 
13                 string key = "aR!@$34GP<S#@Js;";
14                 verifyCode += sc.Run("hex_hmac_md5", new object[] { key, passwd }).ToString();
15 
16                 string b = sc.Run("md5", new object[] { verifyCode }).ToString();
17                 //md5(str + hex_hmac_md5(key, document.loginForm.Passwd.value));
18 
19                 #region 不使用MScript.ocx组件
20                 //WebBrowser webBrowser = new WebBrowser();
21 
22                 //webBrowser.Navigate("http://qb.qq.com/");
23 
24                 //while (webBrowser.ReadyState != WebBrowserReadyState.Complete)
25                 //{
26                 //    System.Windows.Forms.Application.DoEvents();
27                 //}
28 
29                 //HtmlElement heScript = webBrowser.Document.CreateElement("script");
30 
31                 //heScript.SetAttribute("type", "text/javascript");
32 
33                 //StringBuilder sb = new StringBuilder();
34                 //sb.AppendLine("function GetPasswd(verifyCode,passwd) {");
35                 //sb.AppendLine(" return md5(verifyCode + hex_hmac_md5 ('aR!@$34GP<S#@Js;', passwd));");
36                 //sb.AppendLine(" };");
37 
38                 //heScript.SetAttribute("text", sb.ToString());
39                 //webBrowser.Document.Body.AppendChild(heScript);
40 
41                 //passwdValue = webBrowser.Document.InvokeScript("GetPasswd", new object[] { verifyCode, passwd }).ToString();
42                 #endregion
43                 return true;
44             }
45             catch (Exception ex)
46             {
47                 errMsg = ex.Message;
48                 return false;
49             }
50         }

 下载地址:MScript.ocx

 

抱歉!评论已关闭.