1. 放肆雷特 - 锋哥的博客首页
  2. 程序生涯
  3. .NET

C#最新版QQ空间密码加密算法

年底了,先预祝各位朋友新年快乐。最近这段时间工作比较忙,晚上就一直在写一个关于QQ空间助手的工具,遇到了不少问题。但最大的问题是,QQ空间助手我不知道应该做哪些功能进去。谁有好的点子麻烦提供一点吧。QQ空间助手工具个人觉得最麻烦一点就是登陆部分。下面是登陆的加密算法,貌似在WebQQ上也能用,只是登陆时有几个参数不同。

    class PasswordHelper
    {
        /// <summary>
        /// 根据QQ号码和验证码加密密码
        /// </summary>
        /// <param name="qqNum">QQ号码</param>
        /// <param name="password">QQ密码</param>
        /// <param name="verifycode">验证码</param>
        /// <returns>密码密文</returns>
        public static string GetPassword(string qqNum, string password, string verifycode)
        {
            //uin为QQ号码转换为16位的16进制
            int qq;
            int.TryParse(qqNum, out qq);

            qqNum = qq.ToString("x");
            qqNum = qqNum.PadLeft(16, '0');

            String P = hexchar2bin(md5(password));
            String U = md5(P + hexchar2bin(qqNum)).ToUpper();
            String V = md5(U + verifycode.ToUpper()).ToUpper();
            return V;
        }

        public static string md5(string input)
        {
            byte[] buffer = MD5.Create().ComputeHash(Encoding.GetEncoding("ISO-8859-1").GetBytes(input));
            return binl2hex(buffer);
        }

        public static string binl2hex(byte[] buffer)
        {
            StringBuilder builder = new StringBuilder();
            for (int i = 0; i < buffer.Length; i++)
            {
                builder.Append(buffer[i].ToString("x2"));
            }
            return builder.ToString();
        }

        public static string hexchar2bin(string passWord)
        {
            StringBuilder builder = new StringBuilder();
            for (int i = 0; i < passWord.Length; i = i + 2)
            {
                builder.Append(Convert.ToChar(Convert.ToInt32(passWord.Substring(i, 2), 16)));
            }
            return builder.ToString();
        }
    }

登陆成功返回的内容
C#最新版QQ空间密码加密算法

原创文章,作者:锋哥,如若转载,请注明出处:https://www.fangsi.net/710.html

发表评论

登录后才能评论

评论列表(9条)

  • P先生
    P先生 2014年6月6日 11:10

    WebBrowser占内存和带宽啊。

  • 闯荡
    闯荡 2014年2月8日 21:21

    现在QQ空间访客采集有好多不太稳定了,有什么好办法吗?

    • 胖子
      锋哥 回复 闯荡 2014年2月9日 00:53

      我不明白你说的好多不太稳定是什么意思哦。

  • faith
    faith 2014年1月24日 13:50

    我的方法是直接把他的加密算法的js代码,做成资源文件,要用的时候用.net执行js加密方法。这样再也不怕Tx换算法了。

    • 胖子
      锋哥 回复 faith 2014年1月24日 14:10

      你这样可以,而且省事。

  • Soar、毅
    Soar、毅 2014年1月24日 10:17

    真心不错,逆向JS代码搞出来的?

    • 胖子
      锋哥 回复 Soar、毅 2014年1月24日 10:20

      跟据JS加密的原理,然后做相同的处理就行了。

  • 天空
    天空 2014年1月22日 21:31

    正好赶上新博文,哈哈。
    上周我也做了个QQ空间的小程序,采集访客的,我是偷懒用的webbrowser,非POST。
    难点在于skey的获取(可通过cookie获取)、验证码的判断。
    空间助手功能的话,不建议做太多娱乐功能,可以有说说批量发表、批量赞说说赞日志、日志发表、签到、最新访客收集(用于营销,比如收集指定某QQ的访客进行EDM精准推送)等等,其他没想到。

    • 胖子
      锋哥 回复 天空 2014年1月22日 21:50

      WebBrowser取cookie好像还比较方便吧,验证码的判断应该不需要程序处理吧。空间助手我现在打算做批量点赞,定时说说,日志发表就不做了。处理那些html编辑器的内容比较麻烦。访客收集可以做进去。还要加一个批量对好友留言。