受到了来自HACK学习的一篇博客的启发,同时也得益于Chrome强大的调试功能。
在Chrome上对易班的发送请求进行抓包,可以看到日报数据被加密了
前端加密基本上会使用Base64, AES, RSA, SHA256等,我们首先会发现这是一个base64格式的字符串,所以首先尝试一次base64解码。
解密的结果仍然是一个base64编码的字符串
在进行一个base64解码,得到一堆乱码
我们来到易班的一个关键的js文件中,搜索一些常见的加密算法名称
搜索之后,发现有AES
于是我们猜测易班先是以AES加密,以base64编码输出一个字符串,之后再对字符串进行了base64编码。
下面我们要用到Chrome的调试功能。
发送日报数据那个请求,我们查看它的函数调用栈。
post那个函数应该是发送数据的,所以在这个位置设置断点,并且逆着调用栈依次向后回溯,就可以找到加密的代码
所以,现在断定使用了AES加密算法,CBC模式,填充方式:PKCS7。
在设置断点处停止的话,就可以看到密钥和偏移量