? 一文帶你了解多文件混淆加密

?🔒 一文帶你了解多文件混淆加密

目錄

🔒 一文帶你了解 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.pswp.cn/news/166240.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166240.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166240.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關閉vscode打開的本地服務器端口

vscode開了本地的一個端口“8443”當本地服務器端口&#xff0c;然后隨手把VScode一關&#xff0c;后來繼續做發現8443端口已經被占用了。 ??原來&#xff0c;即便關閉了編譯器VScode&#xff0c;服務器依然是被node.exe運行著的。那這個端口怎么才能關掉呢&#xff1f; ??…

Kotlin基礎——Lambda和函數式編程

Lambda 使用 { } 定義Lamba&#xff0c;調用run運行 run { println(1) }更常用的為 { 參數 -> 操作 }&#xff0c;還可以存儲到變量中&#xff0c;把變量作為普通函數對待 val sum { x: Int, y: Int -> x y } println(sum(1, 2))maxBy()接收一個Lambda&#xff0c;傳…

EXIT外部中斷 HAL庫+cubeMX

一.cubeMX外部中斷配置 1.系統內核 2.中斷管理 3.選擇搶占優先級和響應優先級&#xff0c;共有5個等級&#xff0c;在這里就使用庫函數編寫代碼時最常用的2位搶占優先級2位響應優先級。 4.勾選使能選項&#xff0c;后面的兩個零&#xff0c;第一個代表搶占優先級的等級&#xf…

用于計算機屏幕安全攝像頭系統:Screen Anytime Crack

Screen Anytime 是一款軟件&#xff0c;旨在自動將整個用戶會話或 PC/服務器/VM/Kiosk 的 /RDP/Citrix/RemoteApp 會話的屏幕活動記錄到視頻日志文件中&#xff0c;以用于記錄、審核和監控目的。通過重播其高度壓縮的視頻&#xff0c;您可以輕松回顧單臺計算機或一組服務器/PC …

基于C#實現并查集

一、場景 有時候我們會遇到這樣的場景&#xff0c;比如:M{1,4,6,8},N{2,4,5,7}&#xff0c;我的需求就是判斷{1,2}是否屬于同一個集合&#xff0c;當然實現方法有很多&#xff0c;一般情況下&#xff0c;普通青年會做出 O(MN)的復雜度&#xff0c;那么有沒有更輕量級的復雜度呢…

Vatee萬騰科技的獨特力量:Vatee數字時代創新的新視野

在數字化時代的浪潮中&#xff0c;Vatee萬騰科技以其獨特而強大的創新力量&#xff0c;為整個行業描繪了一幅嶄新的視野。這不僅是一場科技創新的冒險&#xff0c;更是對未來數字時代發展方向的領先探索。 Vatee萬騰將創新視為數字時代發展的引擎&#xff0c;成為推動行業向前的…

ubuntu 安裝python3.13

列出 /usr/bin/ 目錄下所有以 python 開頭的文件和目錄 ls /usr/bin/python* 添加Python軟件源。您可以通過以下命令將Python的軟件源添加到您的系統中 sudo add-apt-repository ppa:deadsnakes/ppa 然后運行以下命令以更新軟件包列表&#xff1a; sudo apt-get update 安…

vue每個階段的生命周期做了什么

Vue 實例的生命周期可以分為創建階段、掛載階段、更新階段和銷毀階段。下面是每個階段具體干了什么的說明和對應的代碼示例&#xff1a; 創建階段 beforeCreate&#xff1a; 此階段在實例初始化之后&#xff0c;數據觀測 (data observer) 和 event/watcher 事件配置之前被調用…

Spring AOP 底層原理

Spring AOP 底層原理 aop 底層是采用動態代理機制實現的&#xff1a;接口實現類 &#xff08;1&#xff09;如果要代理的對象&#xff0c;實現了某個接口&#xff0c;那么 Spring AOP 會使用 JDK Proxy&#xff0c;去創建代理對象。 &#xff08;2&#xff09;沒有實現接口的對…

下一代ETL工具:微服務架構的全新數據集成平臺

當前對于大型企業來說數據的整合和加工變得越來越重要。隨著業務需求的不斷增長&#xff0c;企業數據量越來越大&#xff0c;數據管道越來越多&#xff0c;現有的ETL&#xff08;抽取、轉換、加載&#xff09;工具已不再滿足實時、高性能和微服務架構等現代化需求。因此&#x…

基于C#實現Prim算法

圖論在數據結構中是非常有趣而復雜的&#xff0c;作為 Web 碼農的我&#xff0c;在實際開發中一直沒有找到它的使用場景&#xff0c;不像樹那樣的頻繁使用&#xff0c;不過還是準備仔細的把圖論全部過一遍。 一、最小生成樹 圖中有一個好玩的東西叫做生成樹&#xff0c;就是用…

前端項目搭建Webpack的配置

本人這次是在搭建一個Typescript項目時候配置的Webpack。但是Typescript的項目本人看來和往常的Web(Vue)項目類似點很多的。那么我們就可以通過對該Typescript項目的略微調整即可挪到Web項目中....... 首先說明一下為什么要依賴WebPack來搭建項目&#xff1f;&#xff1f;&…

ES 萬條以外分頁檢索功能實現及注意事項

背景 以 ES 存儲日志&#xff0c;且需要對日志進行分頁檢索&#xff0c;當數據量過大時&#xff0c;就面臨 ES 萬條以外的數據檢索問題&#xff0c;如何利用滾動檢索實現這個需求呢&#xff1f;本文介紹 ES 分頁檢索萬條以外的數據實現方法及注意事項。 需求分析 用 ES 存儲數…

Redis 反序列化失敗

文章目錄 問題原序列化配置修改配置解決方法 問題 com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of org.springframework.security.core.authority.SimpleGrantedAuthority (although at least one Creator exists): cannot deser…

css圖片縮放屬性object-fit說明

object-fit 屬性可以設置以下值&#xff1a; 屬性值說明例子fill填充容器&#xff0c;可能會改變圖片的比例。object-fit: fill;contain保持圖片的原始比例&#xff0c;確保圖片完全包含在容器內。object-fit: contain;cover保持圖片的原始比例&#xff0c;確保圖片覆蓋整個容…

性能優化中使用Profiler進行頁面卡頓的排查及解決方式

文章目錄 一、前言二、頁面卡頓的排查方式1、耗時操作的監控2、頁面卡頓的監控 三、參考鏈接 一、前言 程序的優化在做過線上bug處理&#xff0c;布局層級優化&#xff0c;項目依賴庫版本更新&#xff0c;重復庫合并&#xff0c;刪除未使用的資源&#xff0c;刪除冗余的庫&…

機器學習【01】相關環境的安裝

學習實例 參考資料&#xff1a;聯邦學習實戰{楊強}https://book.douban.com/subject/35436587/ 項目地址&#xff1a;https://github.com/FederatedAI/Practicing-Federated-Learning/tree/main/chapter03_Python_image_classification 一、環境準備 GPU安裝CUDA、cuDNN pytho…

ComboGrid中快捷鍵Enter使用

為了實現當前元素&#xff0c;回車時有值跳轉到下一個元素&#xff0c;無值則查詢。 定義元素時使用快捷鍵 $.fn.combogrid.defaults.keyHandler.up.call(this);調用combogrid默認的快捷鍵 $(#cs).combogrid({width: 360,placeholder: 測試...,panelWidth: 1000,qParams: {pJ…

letcode::數組中的第k個最大元素

數組中的第k個最大元素 給定整數數組 nums 和整數 k&#xff0c;請返回數組中第 k 個最大的元素。 請注意&#xff0c;你需要找的是數組排序后的第 k 個最大的元素&#xff0c;而不是第 k 個不同的元素。 你必須設計并實現時間復雜度為 O(n) 的算法解決此問題。 示例 1: 輸入: …

PHP 語法||PHP 變量

PHP 腳本在服務器上執行&#xff0c;然后將純 HTML 結果發送回瀏覽器。 基本的 PHP 語法 PHP 腳本可以放在文檔中的任何位置。 PHP 腳本以 <?php 開始&#xff0c;以 ?> 結束&#xff1a; <?php // PHP 代碼 ?> 值得一提的是&#xff0c;通過設定php.ini的相…