文章目录
- uglityjs非集成方式混淆js代码
- 一、前言
- 1.简介
- 2.环境
- 3.bat和ps1
- .ps1 文件
- .bat 文件
- 二、正文
- 1.安装Node.js
- 2.安装UglityJS
- 3.代码混淆
- 1)单个文件
- 2)多个文件
uglityjs非集成方式混淆js代码
一、前言
1.简介
UglifyJS 是一个 JavaScript 解析器、缩减器、压缩器和美化工具包
2.环境
- Windows 10 专业版
- Node.js 版本:12.20.1
- uglify-js 版本:3.17.4
3.bat和ps1
.ps1 文件
- 格式: PowerShell 脚本文件
- 环境: 在 Windows PowerShell 中运行,这是一种更现代的命令行界面,提供了更强大的脚本功能
- 功能: 支持复杂的逻辑、高级功能和命令,例如:访问Windows API、文件系统操作、网络操作、系统管理任务等
- 使用场景:
- 需要执行复杂的系统管理任务
- 需要使用Windows的高级功能,如 WMI 或 CIM
- 适用于自动化管理任务和批量处理数据
- 当需要在Windows系统上创建高度自定义化的脚本时
.bat 文件
- 格式: 批处理文件
- 环境: 在 CMD(命令提示符)中运行,是早期 Windows 版本中使用的传统方式。
- 功能: 相对较简单,主要用于执行一系列命令。支持基本的循环和条件语句
- 使用场景:
- 执行简单的文件操作和系统命令
- 自动化简单的日常任务,如启动程序、简单文件操作等
- 适用于向后兼容性,例如在老旧的系统上运行
- 当需要一个轻量级的脚本来执行简单任务时
uglifyjs 主页:https://lisperator.net/uglifyjs/
uglifyjs GitHub:https://github.com/mishoo/UglifyJS
nvm - github:https://github.com/nvm-sh/nvm
Node.js 版本:https://nodejs.org/en/download/releases
Nvm管理NodeJs版本:https://blog.csdn.net/u011424614/article/details/133938401
二、正文
1.安装Node.js
-
Nvm 安装参考:《Nvm管理NodeJs版本》
-
Node.js 下载:Node.js Downloads
-
查询版本
node -v
npm -v
2.安装UglityJS
- Node.js 环境安装 UglityJS
npm install uglify-js -guglifyjs --version
3.代码混淆
1)单个文件
- 混淆变量名(-m),并压缩(-c)
uglifyjs input.js -o output.js -m -c
2)多个文件
- 编写 PowerShell 脚本,文件名:
uglifyjs_batch.ps1
# 要处理的文件夹路径
$inputDirectory = "C:\Project\input" # 输入文件夹路径
$outputDirectory = "C:\Project\output" # 输出文件夹路径# 如果输出文件夹不存在,则创建它
if (-not (Test-Path -Path $outputDirectory)) {New-Item -ItemType Directory -Path $outputDirectory
}# 获取所有 .js 文件
$files = Get-ChildItem -Path $inputDirectory -Recurse -Include "*.js"# 遍历所有文件
foreach ($file in $files) {# 计算文件相对于输入目录的相对路径$relativePath = $file.FullName.Substring($inputDirectory.Length)# 在输出目录中创建相同的目录结构$outputFilePath = Join-Path -Path $outputDirectory -ChildPath $relativePath$outputFileDirectory = [System.IO.Path]::GetDirectoryName($outputFilePath)if (-not (Test-Path -Path $outputFileDirectory)) {New-Item -ItemType Directory -Path $outputFileDirectory}# 执行压缩uglifyjs $file.FullName -c -m -o $outputFilePathWrite-Host "完成文件: $file"
}Write-Host "全部文件处理完成"
- 脚本所在的文件夹,资源管理器中输入
powershell
,调出 PowerShell 窗口
- 设置 PowerShell 执行脚本的权限
# 临时授权
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass# 永久授权
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
- 执行脚本
.\uglifyjs_batch.ps1