首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用蜜蜂采集器对Crypto-JS加密的网页数据进行解密

蜜蜂采集器使用教程 - 对Crypto-JS加密的网页数据进行解密

有些网页会使用JavaScript的加密库Crypto-JS来加密网页数据,如果使用常规的思路进行处理,则非常麻烦,耗时耗力。本文介绍一种可以在蜜蜂采集器中使用的解密方法,供大家参考。

Crypto-JS的使用

Crypto-JS是一个基于MIT协议的JavaScript加密库,集成了MD5、SHA1、AES、DES、RC4、DES等算法,可以非常方便地在网页或Node.js等场景中使用。网页中使用时,可以使用crypto-js.min.js。

加密时,可以使用如下代码:

var ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data), 'secret key 123').toString();

解密时,可以使用如下代码:

var bytes = CryptoJS.AES.decrypt(ciphertext, 'secret key 123'); var decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));

实际使用时,可能调用会复杂一点,但思路差不多。

采集时解密

如上。如果网页中使用这种加密的数据,然后在网页加载完成后动态解密,则使用采集器时,常规采集方式处理起来非常费力。这里,我们将网页中的JavaScript解密代码抠出来,放到Node.js标签数据处理插件中,即可使用Node.js来执行JavaScript代码,进而实现解密功能。

打开蜜蜂采集器,菜单“采集”----“标签数据处理插件”页面,添加一个“Crypto-JS解密测试”的Node.js标签数据处理插件,并添加代码如下:

var CryptoJS=require("./crypto-js.min") function inited(){ var ciphertext = bee.BEE_INPUT['value']; var bytes = CryptoJS.AES.decrypt(ciphertext, 'test.com'); var decryptedData = bytes.toString(CryptoJS.enc.Utf8); bee.BEE_OUTPUT['result'] = decryptedData; bee.BEE_OUTPUT['code'] = 0; bee.BEE_OUTPUT['msg'] = '成功'; //结果返回 bee.BeeCollector_Output(); process.exit(0); }

添加插件

插件代码

这里,直接使用的js代码crypto-js.min.js。当然,也可以使用Node.js的Crypto-JS模块。

添加一个测试用的采集规则,并添加一个测试的标签“解密测试”,设置标签内容为测试内容“U2FsdGVkX1+I7qhf+Hzt2Nual49ytTZBCpf2pq/H1gBA47/68WBzGvZU3R2B1vTkivLxkHUNniuxEtBKihOuglnTy16XBviWZ08A4sWf34Q=”,启用“标签数据二次处理”,并添加“调用插件”处理项,选择刚刚添加好的标签数据处理配置,即可。点击“测试”,“调试”窗口输出了解密结果“Crypto-JS解密测试Crypto-JS解密测试Crypto-JS解密测试”。

采集规则

实际使用时,可以会遇到JavaScript反调试等保护措施,应根据情况作相应处理。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230502A05GZE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券