首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

QQ空间的登录加密算法是什么?解决办法

2013-10-27 
QQ空间的登录加密算法是什么?本帖最后由 starsky_1 于 2013-10-23 16:34:56 编辑下载了一个QQ农场外挂,想

QQ空间的登录加密算法是什么?
本帖最后由 starsky_1 于 2013-10-23 16:34:56 编辑 下载了一个QQ农场外挂,想学习下。
但是源码里的登录算法已经过时了,想知道最新的登录算法是什么?是如何实现的?
现在把原来的代码贴上来,大神们告诉我怎么修改!

string username = "123";
            string userPWD = "123";
            string verifyCode = txtVerify.Text;
            string errorTxt = string.Empty;
            string strRetVal = Utils.getMd5Hash2(Utils.getMd5Hash(userPWD).ToUpper() + verifyCode.ToUpper()).ToUpper();
            string postData = "u=" + username + "&p=" + strRetVal + "&verifycode=" + verifyCode + "&aid=15000101&u1=http%3A%2F%2Fphp.qzone.qq.com%2Findex.php%3Fmod%3Dportal%26act%3Dlogin&fp=loginerroralert&h=1&ptredirect=1&ptlang=0&from_ui=1&dumy=";
            string result = HttpHelper.GetHtml("http://ptlogin2.qq.com/login", postData, true, cookie);
            errorTxt = result;
            result = HttpHelper.GetHtml("http://php.qzone.qq.com/index.php?mod=portal&act=login", cookie);
            bool isLogin = result.Contains("g_iLoginUin = " + username);
            if (!isLogin)
            {
                if (result.Contains("完成跳转"))
                {
                    ChangeMessage("登录成功");
                    isLogin = true;
                }
                else
                {
                    if (!isLogin)
                    {
                        if (result.Contains("g_iLoginUin=" + username))
                        {
                            ChangeMessage("登录成功");
                            isLogin = true;
                        }
                        else
                        {
                            errorTxt = Utils.NoHTML(errorTxt);
                            isLogin = false;
                        }
                    }
                }
            }
            else
            {
                ChangeMessage("登录成功");
                isLogin = true;
            }
/// <summary> 
        /// md5加密 
        /// </summary> 
        /// <param name="input"></param> 


        /// <returns></returns> 
        public static string getMd5Hash2(string input)
        {
            byte[] buffer = MD5.Create().ComputeHash(Encoding.Default.GetBytes(input));
            StringBuilder builder = new StringBuilder();
            for (int i = 0; i < buffer.Length; i++)
            {
                builder.Append(buffer[i].ToString("x2"));
            }
            return builder.ToString();
        }
        /// <summary> 
        /// 三次md5加密 
        /// </summary> 
        /// <param name="input"></param> 
        /// <returns></returns> 
        public static string getMd5Hash(string input)
        {
            MD5 md = MD5.Create();
            byte[] buffer = md.ComputeHash(Encoding.Default.GetBytes(input));
            buffer = md.ComputeHash(buffer);
            buffer = md.ComputeHash(buffer);
            StringBuilder builder = new StringBuilder();
            for (int i = 0; i < buffer.Length; i++)
            {
                builder.Append(buffer[i].ToString("x2"));
            }
            return builder.ToString();
        }

热点排行