​ 一文带你了解多文件混淆加密

news/2024/7/1 5:21:33

目录

🔒 一文带你了解 JavaScript 多文件混淆加密

ipaguard加密前

ipaguard加密后


🔒 一文带你了解 JavaScript 多文件混淆加密

JavaScript 代码多文件混淆加密可以有效保护源代码不被他人轻易盗取。虽然前端的 JS 无法做到纯粹的加密,但通过一系列的混淆操作,可以让源码变得难以阅读,增加他人复制的难度。强烈推荐您试一试 ipaguard代码加密工具,它能够为您的代码提供更强的保护。

对于 webpack、vite 等打包后的多 JS 文件,建议只对核心代码进行单独混淆加密,以避免性能损耗。如果您想了解更多关于如何使用 safekodo 进行混淆加密的操作,请继续阅读本文。

我们先来看目录结构及文件信息

sk-demo├─ index.html├─ js│  ├─ a.js│  └─ b.js├─ readme.md└─ safekodo-js

👀 可以看到在 sk-demo 项目下有一个 index.html 及两个文件夹:📁 js 文件夹放的是未加密的 JS 代码,safekodo-js 则是多文件加密后的 JS 文件。

首先是 index.html 代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>safekodo 多文件js混淆加密测试</title>
    <script src="./js/a.js"></script>
    <script src="./js/b.js"></script>

</head>

<body>
    <button  onclick="functionA()">测试</button>

    <div id="demo">
        <div>页面未点击</div>
    </div>
</body>

</html>

然后是a.js, 里面包含了两个挂载在了全局的方法,appendHtml functionA

window.appendHtml = (textContent,color) => {
    let div = document.createElement('div');
    div.style.color = color;
    div.textContent = textContent;
    document.getElementById('demo').appendChild(div);
}
window.functionA = () => {
    document.querySelector('#demo div').remove();
    appendHtml('点击按钮调用了functionA','red')
    functionB();
}

然后是b.js

window.functionB = () => {
    appendHtml('functionA中调用了functionB', 'blueviolet')
}

🔘 首先,通过按钮触发执行了 a.js 的 functionA 方法,然后在 functionA 中调用了 b.js 的 functionB 方法。

页面视图可以看到以下变化:🔳 未点击按钮时 - 页面显示按钮和页面未点击字样🔳 点击按钮后 - 页面上页面未点击字样被移除,出现了红色的点击按钮调用了 functionA 字样,随后又出现了 functionA 中调用了 functionB 字样(⚠️ 注意: 因为 JS 运行非常快,所以实际看上去是一瞬间变化就完成了)

ipaguard加密前

🔒 要对以上多个 JS 文件进行加密,需要先将它们压缩为 ZIP 格式。最好直接在 JS 文件目录内压缩 a、b 两个文件,确保解压 ZIP 后直接得到的是 2 个 JS 文件而不是一个文件夹。

打开 ipaguard 官网,选择顶部导航栏的 📜 JS 多文件加密。将 ZIP 文件拖入或点击选中 ZIP 文件,根据需求修改加密参数配置,然后点击提交加密。等待文件加密完成后,即可点击下载文件。

将 ZIP 解压到项目的 ipaguard-js 文件夹下。文件目录结构如下所示:📁 ipaguard-js 包含两个加密后的 JS 文件。

sk-demo├─ index.html├─ js│  ├─ a.js│  └─ b.js└─ safekodo-js│  ├─ a.js│  └─ b.js├─ readme.md

随后修改index.html的引用路径

    <!-- <script src="./js/a.js"></script>
    <script src="./js/b.js"></script> -->

    <script src="./safekodo-js/a.js"></script>
    <script src="./safekodo-js/b.js"></script>

随后点击测试按钮 js依旧调用成功。

ipaguard加密后

🎉 好了,相信大家通过上述的小 demo 已经学会了如何使用 ipaguard 代码加密工具对多个 JS 文件进行加密了。💻🔒


http://lihuaxi.xjx100.cn/news/1827110.html

相关文章

Vue19 列表过滤

直接上代码 以下代码使用了两种实现方式&#xff0c;监视属性和计算属性 当能用计算属性实现时&#xff0c;推荐使用计算属性 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>列表过滤</title><script type&q…

Rust语言入门教程(四) - 标量数据类型

标量类型(Scalar Types) 在Rust中&#xff0c;一共有4中标量类型&#xff0c; 也就是基本数据类型&#xff0c;分别是&#xff1a; 整型&#xff08;Integers&#xff09;浮点型&#xff08;Floats&#xff09;布尔型&#xff08;Boolean&#xff09;字符型&#xff08;Chara…

基于C#实现并查集

一、场景 有时候我们会遇到这样的场景&#xff0c;比如:M{1,4,6,8},N{2,4,5,7}&#xff0c;我的需求就是判断{1,2}是否属于同一个集合&#xff0c;当然实现方法有很多&#xff0c;一般情况下&#xff0c;普通青年会做出 O(MN)的复杂度&#xff0c;那么有没有更轻量级的复杂度呢…

拼多多平台全面API接口对接

对接流程&#xff08;支持虚拟商品&#xff09; 拼多多与商家之间数据双向请求&#xff0c;同步更新及相关数据传输。对接主要分为三大部分&#xff1a;准备阶段、对接测试、上线使用&#xff1b;针对每部分具体说明如下&#xff1a; 接口连通性测试重点关注两类接口的连通性&a…

基于Vue+SpringBoot的个人健康管理系统

项目编号&#xff1a; S 040 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S040&#xff0c;文末获取源码。} 项目编号&#xff1a;S040&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 健康档案模块2.2 体检档案模块2.3 健…

前端 HTML 和 JavaScript 的基础知识有哪些?

前端开发是Web开发的一个重要领域&#xff0c;涉及到HTML&#xff08;Hypertext Markup Language&#xff09;和JavaScript两个主要的技术。HTML用于定义网页的结构和内容&#xff0c;而JavaScript用于实现网页的交互和动态效果。以下是前端HTML和JavaScript的基础知识&#xf…

Sublime Text 4168最新代码编辑

Sublime Text是一款功能强大的文本编辑器&#xff0c;具有以下主要功能&#xff1a; 支持多种编程语言的语法高亮和代码自动完成功能&#xff0c;包括Python、JavaScript、HTML、CSS等。提供代码片段&#xff08;Snippet&#xff09;功能&#xff0c;可以将常用的代码片段保存…

RK3568 支持4x4矩阵键盘

在对应的设备树添加: keypad {compatible = "gpio-matrix-keypad";pinctrl-names = "default";pinctrl-0 = <&GPIO3_A1_pin&GPIO1_D3_pin&GPIO1_D4_pin&GPIO1_C7_pin&GPIO1_D2_pin&GPIO1_D1_pin&GPIO1_D0_pin&GPIO3_A…