本文章的目的纯为技术研究所分享,带你了解目前前端JS加密的原理
**原文地址:**zhuanlan.zhihu.com/p/377282174
一般做的好,有一定安全意识的网站都会对数据进行加密,得物APP也一样,对接口请求进行了加密处理。
但是这种加密也就只能防得住君子,防不住高手,比如我,毕竟这种前端加密算法需要暴露到浏览器运行,就给了爆破的机会。
我们看到下图,请求有一个 sign
参数,这个参数是动态生成的,这里已经就吓跑了很多想破解的程序员~~。其实还是很简单的。
sign
参数就是突破口,我们全局搜索这个参数(如下图)
一堆代码别头疼,这时候需要耐心的查找,很快我们就发现了蛛丝马迹(如下图),在 index.2c3016d3.js
这个文件中
很明显,这个地方就是给 sign
赋值的,双击进入到代码(如下图),没错,大概率是这的, params
是请求参数,对参数进行加密签名生成 sign
。
我们在这里打一个断点,然后开始调试,找到了如下函数,**这里就是加密算法的核心入口啦!,**尤其注意 19e7
这个函数。
最后到这里,我们就找到了加密算法,剩下的就简单了,只要执行即可。
最后我们把代码还原回来,运行一下,和接口中的sign一致,就这样我们完成了加密算法的识别了。
还原的加密算法源码,我就不在这里公开啦,大家可以关注我~