由于业务需要,研究了一下腾讯微博等登陆,下面分享一些经验给大家: 标题写的是腾讯微博的登陆,其实也可以隐身到腾讯旗下多个产品的登陆,比如QQ空间,webQQ等,想到这儿大伙是不是很激动呢?
[TOC]
表急,等我细细道来。
有时候简单的数据不需要这么大费周折!使用某些语言自带的web工具也是可以的!下面我以Python为例:
登录过程需要抓包,我是用的HttpWatch,大体步骤如下
本文假设读者理解http协议及数据包的发送原理,以此为基础,工作的难点就集中在数据的准备上。
以下提取自登录页面的c_login_2.js文件
function getEncryption(password, uin, vcode) {
var str1 = hexchar2bin(md5(password));
var str2 = md5(str1 + uin);
var str3 = md5(str2 + vcode.toUpperCase());
return str3
}
if (b == "login") {
d.u = encodeURIComponent(pt.plogin.at_accout);
d.verifycode = $("verifycode").value;
if (pt.plogin.needShowNewVc && pt.plogin.pt_verifysession) {
d.pt_vcode_v1 = 1;
d.pt_verifysession_v1 = pt.plogin.pt_verifysession
}
if (pt.plogin.RSAKey) {
d.p = $.Encryption.getRSAEncryption($("p").value, d.verifycode);
d.pt_rsa = 1
} else {
d.p = $.Encryption.getEncryption($("p").value, pt.plogin.saltUin, d.verifycode);
d.pt_rsa = 0
}
}
加密方法大致如下:
UA和cookie数据比较基础,在此不赘述,主要需要搞清楚登录路径即可!
action参数可以乱填,和登陆没关系
login_sig提取自登陆页面,需要在登陆时发送!