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

news2024/12/23 3:11:25

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

目录

🔒 一文带你了解 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://www.coloradmin.cn/o/1246046.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

牛客 HJ106 字符逆序 golang实现

牛客题目算法连接 题目 golang 实现 package mainimport ("fmt""bufio""os" )func main() {str, _ : bufio.NewReader(os.Stdin).ReadString(\n)if len(str) 0 {return } else {newstr:""strLen:len(str)-1for i:strLen;i>0;i-…

小红书达人类型特点有哪些,创作形式总结!

小红书自带的社交电商属性&#xff0c;吸引了众多优秀的内容创作者和品牌达人。他们以不同的风格和主题&#xff0c;赢得了粉丝们的喜爱和关注。今天为大家分享下小红书达人类型特点有哪些&#xff0c;创作形式总结&#xff01; 1. 内容创作风格 我们从内容上来区分小红书达人类…

Android11编译第七弹:串口文件读写

问题&#xff1a;需要对SIM卡进行管理&#xff0c;支持APP切换SIM卡。此功能需要访问串口文件&#xff0c;并且对串口文件进行读写。APP操作串口文件/dev/ttyUSB1时&#xff0c;串口文件打开失败。 2023-11-23 10:59:44.092 14264-14264 MULTI_CARD_SerialHandle com.wellnkio…

2023.11.24制作一个常用的登录注册模板(包含密码验证、输出格式验证、验证码等功能)

2023.11.24制作一个常用的登录注册模板&#xff08;包含密码验证、输出格式验证、验证码等功能&#xff09; 1. 简介2. 功能3. 页面效果3.1 登录页面3.2 忘记密码页3.3 注册页面 1. 简介 比较喜欢简洁风&#xff0c;只是用bootstrap进行简单装饰 制作一个模板&#xff0c;日常…

2000-2022年上市公司全要素生产率LP方法(含原始数据+测算代码do文档+计算结果)

2000-2022年上市公司全要素生产率测算LP法&#xff08;含原始数据测算代码do文档计算结果&#xff09; 1、时间&#xff1a;2000-2022年 2、范围&#xff1a;上市公司 3、指标&#xff1a;证券代码、证券简称、统计截止日期、固定资产净额、year、股票简称、报表类型编码、折…

国自然基金项目的题目确定、立项依据、特色与创新、研究内容 目标等,基金撰写的隐藏技巧

目录 一 基金项目申请要求、重点及项目介绍 二 基金的撰写技巧 三 基金撰写的隐藏技巧 四 范例分析及提交前的自我审查 更多应用 基金项目申请需要进行跨学科的技术融合&#xff0c;申请人需要与不同领域结合&#xff0c;形成多学科交叉的研究。基金项目申请在新时期更加注…

函数计算的新征程:使用 Laf 构建 AI 知识库

Laf 已成功上架 Sealos 模板市场&#xff0c;可通过 Laf 应用模板来一键部署&#xff01; 这意味着 Laf 在私有化部署上的扩展性得到了极大的提升。 Sealos 作为一个功能强大的云操作系统&#xff0c;能够秒级创建多种高可用数据库&#xff0c;如 MySQL、PostgreSQL、MongoDB …

今日祝福语道一声早安,惟愿你时时安好,天天幸福!

1、托太阳公公轻轻的叩醒你沉睡的心灵&#xff0c;将暖暖的阳光洒满你全身&#xff0c;愿你精神抖擞信心百倍的迎接新的一天&#xff0c;朋友&#xff0c;早安&#xff01; 2、一天中&#xff0c;第一个叫醒你的是闹钟&#xff0c;第一眼看到的是阳光&#xff0c;第一件要做的事…

竹云参编《公共数据授权运营平台技术要求》团体标准正式发布

2023年11月23日&#xff0c;第二届全球数字贸易博览会“数据要素治理与市场化论坛”于杭州成功召开&#xff0c;国家数据局党组书记、局长刘烈宏&#xff0c;浙江省委常委、常务副省长徐文光出席会议并致辞。会上&#xff0c;国家工业信息安全发展研究中心发布并解读了我国首部…

走近科学之《MySQL 的秘密》

走近科学之《MySQL 的秘密》 mysql 存储引擎、索引、执行计划、事务、锁、分库分表、优化 1、存储引擎&#xff08;storage engines&#xff09; 存储引擎规定了数据存储时的不同底层实现&#xff0c;如存储机制、索引、锁、事务等。 可以通过 show engines 命令查看当前服务…

RabbitMQ基础教程

1.什么是消息队列 消息队列&#xff08;Message Queue&#xff09;&#xff0c;我们一般简称为MQ。消息队列中间件是分布式系统中重要的组件&#xff0c;具有异步性、松耦合、分布式、可靠性等特点。用于实现高性能、高可用、可伸缩和最终一致性架构。是大型分布式系统不可缺少…

利用企业被执行人信息查询API保障商业交易安全

前言 在当今竞争激烈的商业环境中&#xff0c;企业为了保障商业交易的安全性不断寻求新的手段。随着技术的发展&#xff0c;利用企业被执行人信息查询API已经成为了一种强有力的工具&#xff0c;能够帮助企业在商业交易中降低风险&#xff0c;提高合作的信任度。 企业被执行人…

性能优化中使用Profiler进行页面卡顿的排查及解决方式

文章目录 一、前言二、页面卡顿的排查方式1、耗时操作的监控2、页面卡顿的监控 三、参考链接 一、前言 程序的优化在做过线上bug处理&#xff0c;布局层级优化&#xff0c;项目依赖库版本更新&#xff0c;重复库合并&#xff0c;删除未使用的资源&#xff0c;删除冗余的库&…

Android开发从0开始(Activity篇)

Activity的生命周期 对应解释&#xff1a; startActivity(new Intent(源页面.this,目标页面.class)) 结束当前活动页面finish(); Activity的启动模式 App先后打开两个活动&#xff0c;此时活动会放入栈内。 &#xff08;Android:launchMode”standard”&#xff09;默认 &am…

idea git将某个分支内的commit合并到其他分支

idea git将某个分支内的commit合并到其他分支 1.打开旧分支的代码提交记录 在IDEA中切换到新分支的代码&#xff0c;点击Git打开代码管理面板&#xff0c;在顶部点击Log:标签页&#xff08;这个标签页内将来可以选择不同分支的个人/所有人的代码commit记录&#xff09;&#x…

自监督LIGHTLY SSL教程

Lightly SSL 是一个用于自监督学习的计算机视觉框架。 github链接&#xff1a;GitHub - lightly-ai/lightly: A python library for self-supervised learning on images. Documentation&#xff1a;Documentation — lightly 1.4.20 documentation 以下内容主要来自Documen…

平台工程时代的 Kubernetes 揭秘:2023年生产状况报告深度剖析

Kubernetes 在生产环境中的复杂性已经成为常态&#xff0c;在2023年这个平台工程盛行的时代&#xff0c;容器管理的最大亮点可能在于其灵活性&#xff0c;然而在运维政策和治理等方面仍然存在诸多挑战。八年过去了&#xff0c;在生产环境中使用 Kubernetes 仍然需要面临许多挑战…

Java 项目中常用注解汇总!! (自整理)

Spring框架的注解 PostMapping("/getDetails") post请求 映射到接口 RequestBody 用来接收HTTP请求体中参数 GetMapping("/getDetails") get请求 映射到接口 RequestParam 用来接收URL中的查询参数 PutMappi…

YaRN方法:无需微调,高效扩展语言模型上下文窗口/蚂蚁集团与浙大发布原生安全框架v1.0,引领企业网络安全新时代 |魔法半周报

我有魔法✨为你劈开信息大海❗ 高效获取AIGC的热门事件&#x1f525;&#xff0c;更新AIGC的最新动态&#xff0c;生成相应的魔法简报&#xff0c;节省阅读时间&#x1f47b; &#x1f525;资讯预览 YaRN方法&#xff1a;无需微调&#xff0c;高效扩展语言模型上下文窗口 蚂蚁…

将form表单中的省市区的3个el-select下拉框的样式调成统一的间隔距离和长度,vue3项目iot->供应商管理

省市区是用3个el-select组成的 在表单中用el-col&#xff0c;会导致3个下拉的距离不统一&#xff0c;市和区的前面也是不需要文字label的 如何解决:用vue3的:deep()进行样式穿透&#xff0c;由于el-form-item标签都是一样的&#xff0c;为了能准确的找到市的el-form-item&…