首页 > 代码库 > C# QQ的一段skey转bkn算法
C# QQ的一段skey转bkn算法
private void webBrowserLogin_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { //加载完成 if (webBrowserLogin.Url.Host.ToLower() == "qun.qq.com") { if (webBrowserLogin.Document.Cookie != null) { //Config.myCookieContainer = null; Config.cookies = webBrowserLogin.Document.Cookie; string[] cookies = webBrowserLogin.Document.Cookie.Split(‘;‘); foreach (string str in cookies) { string[] keyvalue = http://www.mamicode.com/str.Trim().Split(‘=‘); Cookie ck = new Cookie(keyvalue[0], keyvalue[1]); ck.Domain = ".qq.com"; Config.myCookieContainer.Add(ck); if (keyvalue[0].ToLower().Equals("skey")) { string value = http://www.mamicode.com/keyvalue[1]; Config.bkn = SkeyToBkn(value); } if (keyvalue[0].ToLower().Equals("uin")) { Config.uin = GetUin(keyvalue[1]); } } this.DialogResult = DialogResult.OK; } } } /// <summary> /// skey转bkn /// </summary> /// <param name="str"></param> /// <returns></returns> private string SkeyToBkn(string str) { int hash = 5381; for (int i = 0; i < str.Length; ++i) { hash += (hash << 5) + (int)str[i]; } return (hash & 2147483647).ToString(); } /// <summary> /// 通过uin获取QQ号 /// </summary> /// <param name="str"></param> /// <returns></returns> private string GetUin(string str) { for (int i = 0; i < str.Length; i++) { if (str[i] != ‘o‘ && str[i] != ‘0‘) { return str.Substring(i, str.Length - i); } } return null; }
C# QQ的一段skey转bkn算法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。