C#之打造QQ自动登录器

 现在拥有QQ的人已经很多了,而且不少人同时拥有几个账号,遗憾的是QQ只能设置一个号码自动登录,如果想同时登录几个账号那么必须一个一个手动输入,因此,网上也出现了不少QQ自动登录器,这究竟是怎么实现的呢?其实原理非常简单。

        QQ是支持命令行登录的,也就是说QQ的exe程序支持参数,下面举一个参数登录的例子:
 

  e:\qq\qq.exe /START QQUIN:00000000 PWDHASH:4QrcORm6Wau+VuBX9g+IPg== /STAT:41

        比如有上面这个参数,前面的e:\qq\qq.exe是QQ的程序路径,/START QQUIN:是保留字段,后面紧跟的就是需要登录的QQ号码,PWDHASH:是保留字段,后面紧跟的是该QQ号码的密码,不过这个密码是加密的,我们等下再说,/STAT:41是表示登录状态,其中41表示正常登录,而40表示隐身,目前一直到QQ2009好像只支持这两个状态,不支持其他诸如忙碌,静音,离开等状态,有了这个参数,我们实现自动登录就方便多了!

        这个参数里面其他都好说,唯独这个加密的密码我们不好处理,因为我们必须把密码转换为加密方式,其实,QQ密码的加密方式也是非常简单的,先用MD5的HASH进行一次加密,然后把结果再用一次Base64加密即可得到这个加密字符串,有了这个信息,我们剩下的就好办多了!

        很幸运的是用C#处理这个加密非常简单,有个Convert.ToBase64String(byte[])可以直接进行base64加密,而System.Security.Cryptography这个系统类里有md5.ComputeHash这个方法直接可以进行Hash加密,所以,密码的加密也就变得很简单了,下面对这部分代码进行一个详细的说明:

        首先引用系统类 using System.Security.Cryptography;然后在任意一个按钮事件中写下如下代码:

1. MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
2. byte[] pass=Encoding.Default.GetBytes("要加密的QQ密码");
3. string command = " /START QQUIN:" + "00000000"+ " PWDHASH:" + Convert.ToBase64String(md5.ComputeHash(pass)) + " /STAT:" + "41";

        这样短短的3行代码就构造得到了QQ的登录参数command变量,剩下的只要用System.Diagnostics.Process.Start这个方法去运行这个带参数的QQ.exe就可以了!

        我自己写了这个QQ自动登录的程序,比较简单,当然程序中我没用Convert.ToBase64String这个方法去用Base64加密,而是自己写了Base64的加密方法,主要是为了熟悉一下C#类的使用,另外,程序中还用到了一些基本控件,比如timer,openfiledialog,listview等,适合初学者掌握一些基本控件的用法!

        这里我把源码一并给出,这也是我第一个C#上手程序,虽然只用了短短几个小时,但是我已经可以体会到C#强大的功能,今后还会继续深入研究!

        ps:程序基本完成了自动登录的全过程,但是没有完善保存列表的功能,这个也是比较简单的,下次完善吧,就算留给你们一个课后作业,高手不要见笑,毕竟你们看来程序还是非常简单的,至少我自己写完也是有这个感觉!如果你们谁完善了别忘了发给小焱一份哦!

程序使用VisualStudio2005 编译完成,如果想单独运行请确保已经安装.net framework 2.0 框架!

完整源程序下载:http://www.zystudios.cn/cn/uploadsoft/QQAutoLogin.zip

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值