下面是使用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
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>