易班模拟登录-Day1笔记
易班模拟登录
参考:https://zhuanlan.zhihu.com/p/28354424
大佬省略了一些东西,俺补充一下,学习哈哈
1、工具:火狐浏览器
(1) 扩展:火狐启用持续日志功能
作用就是:页面跳转数据不自动清零
二、进入易班登录页面 https://www.yiban.cn/login?go=http%3A%2F%2Fwww.yiban.cn%2F
打开调试工具,右键检查元素
在各个网络请求中进行筛选,我们只要html和XHR格式的
输入已有账号进行登录
登录进去之后,可以看到地下的请求中,选择dologinAjax请求
可以看到,我们登录的时候其实就是把我们的账号、密码还有captcha(输入的验证码)还有keytime手机戳进行请求,但是我们会发现账号就是我们输入的账号
但是这个密码的话进行了加密,因为当下加密都是通过一个包来实现,我们模拟登录的话,就是要让模拟一个请求和上面的请求是一样的,也就是说我们要找到这个包,然后把我们真实的密码进行加密,然后把加密之后的密码添加到我们的配置里面,之后通过这个配置进行对服务器的请求即可了
三、那怎么样得到加密的包是哪个呢?
我们要从首页开始,先看我们点击“登录”按钮的时候调用了哪个js函数
我们可以先点击退出
重新的进入到这个页面
因为我们知道,在前端html代码中会给按钮button进行命名,之后在js函数里面会对这个button名字进行一定的识别和操作,所以我们要找到这个“登录按钮”的id
通过ctrl+f,输入login,就可以查到代码中对应的字段了,或者是搜索“登录”也是可以的
就可以找到我们想要的东西了
所以说这个“登录”button按钮的id就是login-btn
然后我们再次回到我们登录页面
在登录页面选择 js文件
输入login
一般软件的登录都会准备开一个login页面的,双击点进去
也就是我们登录login的js处理文件了
Ctrl+f 搜索login,来找到我们登录的处理函数 ,或者有良心的程序员会谢注释,也可以通过“登录找到
这个单词encript是”压缩加密“的意思
所以我们猜测
这里是新建了一个加密对象
通过搜索可以知道
https://www.cnblogs.com/ZJTL/p/13650995.html
这个加密算法的话,需要一个key作为公钥
可见这个g_param.keys就是它的公钥,我们在这个js文件里面通过 ctrl+f
搜索这个公钥是什么
可以发现是这个东西
在看我们处理登录的函数代码可以发现,他是使用了这个对象里面的keys属性
所以我们就可以分析这句话,会发现,这里通过jquery语法,取前端代码id是login-pr
Data-keys的数据,所以我们回到登录页面中
查看源代码
我们就找到了这个公钥了
但是这个公钥不能写死,每次结果都是不一样的,所以我们要实时的获得这个公钥
所以我们剩下的思路就是:
获得登录页面html前端代码,找到id是login-pr里面的公钥
通过这个公钥把我们的密码进行加密,加密之后对易班服务器进行请求就行
所以说我们需要两个工具类,一个是帮我们拿到前端页面并进行解析来获得我们公钥的工具类,一个就是加密算法工具类,把我们获得的公钥对我们的密码进行加密
分别就是这两个工具类
然后我们编写主类