爬虫–js加密数据(盐值加密和时间戳)和python转译
1、首先进行js在线调试
在本地文件中创建一个和原网址js文件所在路径一致的文件夹,将全部js文件保存到本地目的文件中。
在sources中的Overrides挂载选中我们的本地文件夹
需要对原js文档进行格式化,格式错误可能为缩进错误,空格缺失等,需要对照原js文档进行调整,结构保持一致。
可用chrome浏览器的格式化,也可以用vscode的扩展vue进行格式化。
2、定位js文件
在headers里面,上述参数均为js签名函数返回,我们需要找到包含该函数的对应js文件。
Timestamp 为时间戳, Signature 为包装完成且经过加密的签名, Nonce 为函数返回的动态签名加密前的组成部分。
在原网页html页面中我们可以从Response页面看出,包含页面关键信息的js文件为“index.6562f434.js”
我们还可以验证一下,在chrome浏览器中search headers里面的参数Signatrue , Timestamp , Nonce 等发现“index.6562f434.js” 确实为加密函数所在js
3、定位加密函数具体位置
1、在定位的js文件里面ctrl + F 搜索 js常用加密方式 AES ; SHA256 ; hex_md5 ;
b64_md5 ; str_md5 ; hex_hmac_md5 ; b64_hmac_md5 ; str_hmac_md5等。
注意区分大小写 这种方法适用于加密方法写在包含页面关键内容的js里,
2、如果是引用,则可以在Sources里面的文件夹内找到加密方法的js,我们也同样可以得知该url加密方法是什么,例如:
<script src="static/plugins/md5/md5.js"></script>
3、通过搜索headers里的关键字,进行定位,一步步查看加密方法:
关键字
搜索(搜索不到可以刷新一下即可)
断点然后按F9进入方法
断点然后按F9进入方法