●爬虫的js加密处理+js算法改写分析
●涉及到的相关内容
■js中常见的加密算法剖析
。线性散列Md5算法
。对称加密DES/AES算法
。非对称加密算法RSA
。base64伪加密
。https证书秘钥加密
●可以处理的爬虫问题
■模拟登录中密码加密和其他请求参数加密处理
■动态加载且加密数据的捕获和破解
■重点:找寻到js算法加密和解密相关流程的编码于处理套路/技巧,大幅度提升处理相关问题
的效率。
DES/AES加密
●DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的算法。该加密算法是一种对称加密方式,其加密运算、解密运算需要使用的是同样的密钥(- 组字符串)即
可。
●注意:
■现在用AES这个标准来替代原先的DES.
■AES和DES的区别:
。加密后密文长度的不同:
。DES加密后密文长度是8的整数倍
。AES加密后密文长度是16的整数倍
。应用场景的不同:
。企业级开发使用DES足够安全
。如果要求高使用AES
。DES和AES切换只需要修改CryptoJS.AES <=> CryptoJS.DES
●使用DES/AES进行数据交互时要求双方都拥有相同的私匙
●破解方法:
”暴力破解。
■DES如果使用56位的密钥,则可能的密钥数量是2的56次方个。只要计算足够强大是可
以被破解的.
爬虫系列:
●动态变化的请求参数:
。每次请求,请求对应的请求参数是实时变化
。处理方式:
。1.会被隐藏在前台页面的相关标签中
。2.通过抓包工具对参数的名称进行全局搜索
■js加密处理
。js逆向:将js代码改写成python程序
。手动:手动执行js代码,将其逻辑转换成python语言
。自动: pyexecJs
。如果捕获请求参数或者捕获页面数据时,基于抓包工具进行全局搜索,搜不到意味着什么?
。说明我们要捕获的数据是经过加密。
。js加密的处理方式就是js逆向。
。js混淆:页面中将关键的重要的s函数的实现进行了加密
。js反混滑:相关的平台就可以破解js混淆的代码
■异步爬虫
。线程池
。生产者消费者模式
。单线程+多任务的异步协程
。特殊的函数: async关键字修饰的函数实现
。协程:
。特殊函数调用后会返回-个协程对象,且函数内部的实现语句不会被立即执行
。特殊的函数=-- -组指定的操作=-协程
。任务:高级的协程对象
。任务对象==一组指定的操作
。事件循环