当前位置: 首页 > news >正文

Node.js RSA 前端密码加密逆向:3步定位 jsbn.js 与 rng.js 依赖链

Node.js RSA前端密码加密逆向:3步定位jsbn.js与rng.js依赖链

当你在分析一个网站的前端加密逻辑时,经常会遇到复杂的JavaScript依赖关系。特别是在处理RSA加密时,往往会牵扯到多个加密库的相互调用。本文将以一个典型场景为例,教你如何快速定位并理解这些依赖关系。

1. 逆向分析前的准备工作

在开始逆向分析之前,我们需要准备好必要的工具和环境。首先确保你已经安装了最新版本的Chrome浏览器和Node.js运行环境。对于代码分析,推荐使用VS Code作为编辑器,它提供了优秀的JavaScript调试功能。

关键工具清单:

  • Chrome开发者工具(F12打开)
  • VS Code + JavaScript调试插件
  • Node.js 16+ 运行环境
  • Postman或类似的API测试工具

提示:在进行逆向分析时,建议使用无痕浏览模式,避免浏览器缓存干扰分析结果。

2. 定位加密入口点

打开目标网站并调出开发者工具,切换到Network面板。在登录表单中输入测试凭据(如用户名:test,密码:123456),但先不要点击登录。此时开启"Preserve log"选项,然后执行登录操作。

观察网络请求,你会发现密码字段通常以加密形式传输。在我们的案例中,password参数显示为一长串看似随机的字符:

password: "a7f3d8c1b5e902f4d6..."

接下来,我们需要在源代码中定位这个加密过程的实现位置。使用Chrome的全局搜索功能(Ctrl+Shift+F),搜索关键词如"encrypt"、"RSA"或"password"。很快我们就能找到加密入口:

// 加密入口示例代码 function encryptPassword(rawPass) { const rsa = new RSAKey(); rsa.setPublic(MODULUS, EXPONENT); return rsa.encrypt(rawPass); }

3. 追踪加密库依赖链

现在我们已经找到了加密入口,接下来需要分析其依赖关系。在我们的案例中,RSA实现依赖于三个关键文件:

文件名称功能描述依赖关系
rsa.js提供RSA加密核心功能依赖jsbn.js和rng.js
jsbn.js大整数运算库无外部依赖
rng.js随机数生成器依赖prng4.js

通过分析调用栈,我们发现完整的依赖链如下:

  1. 主页面调用rsa.js的encrypt方法
  2. rsa.js依赖jsbn.js进行大数运算
  3. rsa.js同时依赖rng.js生成随机数
  4. rng.js又依赖prng4.js实现伪随机数生成

关键代码分析:

// rsa.js中的关键片段 function RSAEncrypt(text) { // 使用jsbn.js的BigInteger const m = new BigInteger(text, 16); // 使用rng.js的随机数生成器 const rng = new SecureRandom(); // 加密核心逻辑 const c = this.doPublic(m, rng); return c.toString(16); }

4. 构建独立的Node.js加密模块

理解了加密逻辑和依赖关系后,我们可以将这些代码移植到Node.js环境中。首先需要将以下文件保存到本地:

  1. rsa.js
  2. jsbn.js
  3. rng.js
  4. prng4.js

然后创建一个封装模块:

// encrypt.js const { RSAKey } = require('./rsa'); const fs = require('fs'); class RSACrypto { constructor(publicKey) { this.rsa = new RSAKey(); const [modulus, exponent] = publicKey.split('|'); this.rsa.setPublic(modulus, exponent); } encrypt(plainText) { return this.rsa.encrypt(plainText); } static fromConfigFile(path) { const config = JSON.parse(fs.readFileSync(path)); return new RSACrypto(config.publicKey); } } module.exports = RSACrypto;

使用这个模块非常简单:

const RSACrypto = require('./encrypt'); const crypto = new RSACrypto('MODULUS|EXPONENT'); const encrypted = crypto.encrypt('mypassword'); console.log('Encrypted:', encrypted);

5. 常见问题与调试技巧

在实际操作中,你可能会遇到各种问题。以下是几个常见情况及解决方法:

  1. 依赖加载顺序错误
    确保文件加载顺序正确:先加载prng4.js,然后是rng.js、jsbn.js,最后是rsa.js。

  2. 加密结果不一致
    检查以下几点:

    • 公钥参数(模数和指数)是否正确
    • 文本编码是否一致(通常是UTF-8)
    • 随机数生成器是否正常工作
  3. 性能优化
    对于高频加密场景,可以考虑:

    • 预初始化RSAKey实例
    • 使用Web Worker避免阻塞主线程
    • 缓存加密结果(适用于相同输入)

注意:在实际项目中,加密参数可能会定期更换。建议实现自动化的参数抓取机制,而不是硬编码在代码中。

通过以上步骤,你应该已经掌握了前端RSA加密的逆向分析方法。这种方法不仅适用于登录场景,也可以应用于其他需要分析前端加密逻辑的情况。记住,理解加密原理比单纯复制代码更重要,这能帮助你在遇到变种加密方案时快速适应。

http://www.jsqmd.com/news/1158223/

相关文章:

  • IvyForms 智能表单构建效果全景展示
  • 2026年7月供应链证书排名:CPPM与SCMP到底哪个好? - 众智商学院cppm官方
  • Codex CLI本地部署实操:从零构建可嵌入CI/CD的代码生成终端工具
  • Jira 2024.12 敏捷项目管理实战:3人团队Scrum看板配置与Sprint规划
  • 芝柏官方服务项目及价格查询|服务电话及全部地址权威信息通知(2026年7月最新) - 亨得利官方服务中心
  • 配送机器人应用场景
  • CST 全局网格设置 3 大核心参数详解:Cells per Wavelength 与模型尺寸的平衡策略
  • 2026年7月最新郑州卡地亚官方售后客服中心地址电话及服务网点分布 - 卡地亚服务中心
  • 2026年7月双证联报TOP1:CPPM+SCMP方案推荐 - 众智商学院cppm官方
  • API 网关与 BFF 实战:为前端量身定制数据层的架构设计
  • 大数据毕设项目: 多渠道新闻爬虫采集与整合发布系统的设计与实现 基于网页数据抓取的新闻热点监测聚合系统(源码+文档,讲解、调试运行,定制等)
  • FastAPI+WebSocket+LangChain实现AI Agent流式对话
  • 第六部分:C++ 进阶特性与最佳实践 —— 从“能用”到“优雅且健壮”
  • 直线电机选型分析
  • Python驱动的无人机多光谱-点云融合技术在生态三维建模与碳储量、生物量、LULC估算中的实战
  • 2026年7月货架厂家推荐,铝型材工作台/货架/皮带输送线/封条/精益生产线/精益周转车/钢丝封条,货架品牌有哪些 - 品牌推荐师
  • 2026年江北纯粮酒供应厂家深度解析与联系决策指南 - 品牌鉴赏官2026
  • 2026年7月最新卡地亚广州SKP维修保养服务电话 - 卡地亚官方售后中心
  • Krea 2 Turbo:8步推理的文本到图像生成模型实战指南
  • STM32F4 GPIO中断模拟I2C从机:400kHz速率下中断响应时间实测与优化
  • AI智能体工作记忆架构:预检检查机制与实现方案详解
  • 颠覆传统部署!Caddy:让 HTTPS 配置变得像呼吸一样简单
  • 华为MetaERP 在 Oracle EBS 中,应收票据的贴现、背书等业务主要通过 Bills Receivable(应收票据工作台) 来实现,属于 AR(应收)模块的功能范畴。下面从系统架构、配置
  • CE认证只是入场券——智能电表出口欧盟,真正的战役在并网端 符合新规VDE-AR-N 4105:2026
  • PHP序列化漏洞原理、利用与防御实战指南
  • PW5410A/PW5100 等 6 款升压 IC 选型对比:从 250mA 到 3A 的 3.7V 转 5V 方案
  • 天梭官方售后服务中心地址和全部热线实地考察报告多信源验证(2026年7月更新) - 天梭服务中心
  • 2026百色正规漏水检测维修权威推荐-卫生间漏水免砸砖维修/厨房阳台墙面暗管漏水检测/屋顶外墙堵漏维修-防水补漏公司实测口碑榜推荐 - 即刻修防水
  • 2026年无锡经济律师哪家好?5位实战经验丰富值得推荐 - 本地品牌推荐
  • 深度解析:抖音2026全域经营下的AI短视频矩阵架构与搜索排名技术拆解