模拟网页登陆
1、下载http抓包软件Fiddler,打开后可以抓取到所有经过80端口的数据包
2、打开登陆新浪微博的界面,可以在Fiddler中看到相关的信息,查了一晚上的资料得知,新浪微博登陆主要靠3个请求
1)
这个请求用于获得几个用于加密的参数
2)
这个请求将加密的用户名和密码发送出去
3)
这个请求就是用于登陆的
3、分析第一个请求
其中最后一个是时间戳
返回值中的servertime,pubkey nonce,rsakv是我们需要的值,用于下一步的加密
4、分析第二个请求
其中su,sp分别是加密过后的用户名和密码。
查看sina登陆的js代码 可以看到加密的过程。
用户名的加密方式是通过BASE64计算得到
username_ = urllib.quote(username)
username = base64.encodestring(username)[:-1]
密码是通过rsa加密
先创建一个rsa公钥,公钥的两个参数分别是登录第一步中的pubkey和js加密文件中的‘10001’。这两个值需要先从16进制转换成10进制,不过也可以写死在代码里。这里就把10001直接写死为65537。代码如下:
rsaPublickey &#