admin 发表于 2009-12-18 13:49:38

C#网页辅助制作 第三节 构造出登陆密码密文

在上一节里我们知道了QQ密码的加密方法了,是用三次MD5加密再结合验证码进行一次MD5加密而得的。我开始做时使用的是标准的MD5加密函数,这样子加密出来的密文和QQ网页上加密出来的不同,我想应该QQ里可能用的不是标准的MD5加密吧。于是乎问题出来了,怎么办呢?仿造他的加密函数自己写一个出来??这个方法我试了一个上午搞得我头都大了,所以放弃了。上网查了一下,原来C#里也可以调用到外部的js代码的哦。呵呵, 这下好了。只要把他的comm.js 调用进来不是就简单得多了嘛。
下面看我怎么调用的吧。
首先要拖一个webBrowser出来,我们要通过这个东西调用js里的函数,设置webBrowser的属性为隐藏就好了。这样不会挡着我们。
命名空间引用:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Security.Permissions;
using System.Text.RegularExpressions;
初始化方法:
         System.IO.FileInfo file = new System.IO.FileInfo(@"E:\vg\vg\vg\js.htm");//注意文件的位置位置不同自己改啊,js.htm网页文件里调用了comm.js脚本文件
            // WebBrowser控件显示的网页路径
            webBrowser1.Url = new Uri(file.FullName);
            // 将当前类设置为可由脚本访问
            webBrowser1.ObjectForScripting = this;
调用方法:
      /// <summary>
      /// //得到加密后的密码密文
      /// </summary>
      /// <param name="pass">密码</param>
      /// <param name="aVerifyCode">验证码</param>
      /// <returns></returns>
      private string Preprocess(string pass, string aVerifyCode)
      {
            string strReturn = "";
            object[] objects = new object;
            object[] o = new object[] { pass };
            object dd = webBrowser1.Document.InvokeScript("md5_3", o);//调用comm.js里的md5_3这个函数,o是传入参数
            object[] b = new object[] { dd.ToString() + aVerifyCode.ToUpper() };
            strReturn = (webBrowser1.Document.InvokeScript("md5", b)).ToString(););//调用comm.js里的md5这个函数,b是传入的参数
            return strReturn;
      }

///////////////////////////js.html文件的内容///////////////////////////////////
<html>
<head>

<SCRIPT language=javascript src="comm.js"> <!--注意你的js文件的位置哦-->
</head>
<body>d
</body>
</html>
////////////////////////////////////////////////////////////////////////////////////
另外要提醒你的是:一定要在定义类之前加上这么一句: 否则可能调用会失败。
下面是我的全部代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Security.Permissions;
using System.Text.RegularExpressions;
namespace WebSiteTest
{
   
    public partial class Form1 : Form
    {
      /// <summary>
      /// 存储操作中的Cookie
      /// </summary>
      private CookieContainer cc = new CookieContainer();
      public Form1()
      {
            InitializeComponent();
            System.IO.FileInfo file = new System.IO.FileInfo(@"E:\vg\vg\vg\js.htm");//注意文件的位置啊
            // WebBrowser控件显示的网页路径
            webBrowser1.Url = new Uri(file.FullName);
            // 将当前类设置为可由脚本访问
            webBrowser1.ObjectForScripting = this;
            // 将当前类设置为可由脚本访问
            webBrowser1.ObjectForScripting = this;
      }
      /// <summary>
      /// //得到加密后的密码和验证码
      /// </summary>
      /// <param name="pass"></param>
      /// <param name="aVerifyCode"></param>
      /// <returns></returns>
      private string Preprocess(string pass, string aVerifyCode)
      {
            string strReturn = "";
            object[] objects = new object;
            object[] o = new object[] { pass };
            object dd = webBrowser1.Document.InvokeScript("md5_3", o);
            object[] b = new object[] { dd.ToString() + aVerifyCode.ToUpper() };
            strReturn = (webBrowser1.Document.InvokeScript("md5", b)).ToString();
            return strReturn;
      }
    }
}

abs123 发表于 2009-12-24 21:57:49

QQ密码是MD5跟base64双重加密吧

failure 发表于 2010-3-21 19:43:51

gooooooooooood

ftfaisq 发表于 2010-3-26 17:07:54

学习一下。。

kinglife 发表于 2010-4-6 18:53:48

gooooooooood

yang5209050 发表于 2010-4-14 21:32:40

谢谢LZ:lol

yang5209050 发表于 2010-4-18 17:53:34

还有几节呢,怎么不出呀

hotool 发表于 2010-4-30 23:09:17

谢谢LZ ····
:D

demo235 发表于 2010-5-2 15:22:50

头两篇都看了,再看看这篇

huo2010shu 发表于 2010-5-24 13:33:17

回复看看.太短了还不行.

501310440 发表于 2010-5-31 22:43:25

学习了啊,呵呵

bluefrankey 发表于 2010-6-2 00:58:35

學習一下怎麼做外掛

电脑白菜 发表于 2010-6-2 15:50:38

看看。学习楼主,后面的文章什么时候出?

chinaxhb 发表于 2010-6-4 09:40:46

来学习啦,还有后面的教程吗?

mqcoo 发表于 2010-8-14 11:36:39

继续顶起。。。。
页: [1] 2
查看完整版本: C#网页辅助制作 第三节 构造出登陆密码密文