avatar

mdo

Hello

  • 首页
  • 知识库
  • 归档
  • 标签
  • 关于
主页 Js 混淆
文章

Js 混淆

发表于 2026-05-9 更新于 2026-05- 9
作者 mdo
4~5 分钟 阅读

如果你想在 ThinkPHP6 项目中针对特定的某个 JS 文件(例如存放解密逻辑的 decrypt.js)进行混淆,而不是混淆整个项目的代码,可以参考以下三种方式:

1. 命令行方式(最简单直接)

如果你不想配置复杂的构建环境,直接使用全局命令行工具即可。

  1. 安装工具:

    bash

    npm install -g javascript-obfuscator
    

    请谨慎使用此类代码。

  2. 执行混淆:

    bash

    # 基础混淆
    javascript-obfuscator ./public/static/js/decrypt.js --output ./public/static/js/decrypt.min.js
    
    # 高强度混淆(带加密字符串和防调试)
    javascript-obfuscator ./public/static/js/decrypt.js --output ./public/static/js/decrypt.min.js --string-array true --string-array-encoding 'base64' --debug-protection true --self-defending true
    

    请谨慎使用此类代码。

    [1]

2. 使用 Node.js 脚本批量处理(推荐)

如果你有多个指定文件,或者想在发布前自动化处理,可以写一个简单的 obfuscate.js 脚本放到项目根目录。

javascript

// obfuscate.js
const JavaScriptObfuscator = require('javascript-obfuscator');
const fs = require('fs');

// 1. 指定要处理的文件路径
const targetFiles = [
    './public/static/js/decrypt.js',
    './public/static/js/api_config.js'
];

targetFiles.forEach(file => {
    const code = fs.readFileSync(file, 'utf8');
    
    // 2. 执行混淆
    const obfuscatedCode = JavaScriptObfuscator.obfuscate(code, {
        compact: true,
        controlFlowFlattening: true,
        stringArray: true,
        stringArrayEncoding: ['base64'],
        identifierNamesGenerator: 'hexadecimal'
    }).getObfuscatedCode();

    // 3. 覆盖原文件或另存为
    fs.writeFileSync(file.replace('.js', '.min.js'), obfuscatedCode);
    console.log(`${file} 混淆完成!`);
});

请谨慎使用此类代码。

运行: node obfuscate.js

技术
许可协议:  CC BY 4.0
分享

相关文章

10月 2, 2026

iOS 侧载(Sideloading)工具

AltStore 和 Sideloadly 都是目前最流行的 iOS 侧载(Sideloading)工具。 简单来说,它们的作用就是让你绕过苹果的官方 App Store,直接把第三方的 IPA 安装包(也就是 iOS 的应用安装文件)安装到你的 iPhone 或 iPad 上。 通过这两个工具,你

9月 28, 2026

注册 Chat Participant

将当前服务接入 VS Code 的 AI 聊天窗口是完全可行的。VS Code 在近期的版本中正式推出了 Chat Extensions API(github.copilot.chat),允许第三方扩展将自定义的 LLM 服务或工具注册到 Copilot Chat 面板中。 结合当前 code_ge

9月 23, 2026

php intelephense 设置 if 空格

在 VS Code 中,如果你使用的是 PHP Intelephense 插件,控制 if 关键字后面是否加空格的设置是由其内置的格式化引擎(基于 PSR-12 标准)决定的。 你可以通过修改 VS Code 的 settings.json 来配置这个行为: 1. 开启 if 后面的空格(默认/推荐

下一篇

Forgot password

上一篇

jquery-tagsinput标签插件

最近更新

  • 比尔盖茨的智慧:想多赚钱,就每天循环做这3件事
  • iOS 侧载(Sideloading)工具
  • 程序员越想创业,越不要急着动手
  • 注册 Chat Participant
  • 中秋给在外游子的一封信

热门标签

API CodeGeex Coding Cursor DeepSeek Docker Gitkraken Harness Laravel Management

目录

©2026 mdo. 保留部分权利。