前端JS加密绕过实战:两种解密策略

需积分: 0 1 下载量 93 浏览量 更新于2024-08-05 收藏 2.29MB PDF 举报
本文档记录了一位前端开发者在2020年6月对一个小规模银行系统进行前端JavaScript加密绕过的经历。背景是该系统采用数据包加密技术,为了测试方便,开发者试图编写解密脚本。在遇到加密后的数据包时,常规的加密函数分析并未奏效,因为发现加密代码利用了第三方库中的自执行函数实现闭包,导致外部无法直接访问内部变量。 开发者首先尝试了多种方法,如尝试直接解包、抽取关键代码,以及针对使用的base64js库进行反编译,但由于该库是经过二次开发的,原版的加密函数并未包含在内,即使在Node.js或Python环境下执行也未能成功。这耗费了大量的时间和精力,超出了解决问题的能力范围。 最后,作者无奈之下选择了一种替代方案:利用浏览器环境的snippets工具,直接在该环境中执行测试脚本。在这个过程中,作者展示了加密和解密函数的具体实现,包括使用`sm4Test`函数,`encryptData_ECB`和`decryptData_ECB`方法,以及相关的变量初始化和调用。通过这个例子,读者可以了解到前端加密技术中的挑战,以及开发者如何在面对复杂加密机制时寻找突破点。虽然文章没有详细列出所有代码,但这段摘要概述了核心思路和过程,对于理解前端加密策略的破解策略具有一定的参考价值。