登陆QQ会验证账号和密码,但是QQ用户那么多,它是怎么保证效率的呢?
他的自动登录是这样搞的[code="java"]实现代码 private void QQLogin(string QQ,string Pwd) { System.Security.Cryptography.MD5 md5=new System.Security.Cryptography.MD5CryptoServiceProvider(); string QQPwd=Convert.ToBase64String(md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(Pwd))); System.Diagnostics.Process pro=new System.Diagnostics.Process(); pro.StartInfo.FileName=@"D:\Program Files\Tencent\QQ\QQ.exe"; pro.StartInfo.Arguments="/start QQUIN:"+this.txtQQ.Text.Trim()+" PWDHASH:"+QQPwd+" /stat:40"; pro.Start(); } 实现原理: QQ自动登陆参数如下: QQ.exe(QQ路径) /START QQUIN:QQ号 PWDHASH:加密后的密码 /STAT:40 [STAT:40 (40 是隐身登陆41 是正常登陆)] D:\Tencent\QQ.exe /START QQUIN:123456 PWDHASH:4QrcOUm6Wau+VuBX8g+IPg== /STAT:41 这就是一个QQ号码为123456,密码为123456,QQ安装路径为:D:\Tencent\QQ.exe的QQ登陆参数,登陆方式为正常登陆。 PWDHASH的加密算法: 首先将QQ原始密码进行MD5散列算法处理,得到一个16字节的MD5 HASH字符串,然后用BASE64编码对这个HASH字符串做第二次编码,编码后的数据就是PWDHASH的值。 [/code]
去找腾讯开放平台以及OAuth
我知道他异地检测原理
[code="java"]按QQ的通讯协议(其他的IM软件也一样),没隔一段时间(大概6秒)会向服务器提交一个心跳信息,说明自己还活着,一般在这个时候可以由服务器检查是否异地登陆了,如果是返回一个信息给客户端。知道异地登陆后怎么处理就自己搞定了[/code] 它会抓包,腾讯使用的协议是
Tencent://Message
别的就不知道了
没你想的那么复杂,用户虽然多,活跃用户有多少?活跃用户并发的访问有多少?
通常活跃用户要做缓存