LOAKPHP VS Code 插件
这个插件直接对接当前项目的 openapi 对外接口,完成以下流程:
- 配置加密 KEY
- 立即发起 KEY 验证
- 读取本地 PHP 文件
- 上传到加密服务站
- 下载服务端返回的 ZIP
- 解压并直接替换本地源文件
Dashboard Webview
插件内新增 LOAKPHP Dashboard Webview,推荐作为主入口使用:
- 可视化配置服务地址、API Key、项目参数和 PHP 版本
- 面板内直接验证密钥状态并查看额度信息
- 直接加密当前活动 PHP、选择文件加密、选择目录批量加密
- 查看最近加密历史、备份预览和未匹配文件
- 清空已保存密钥与清空历史记录
Remote Service Routing
插件现在默认通过单文件远程服务接口转发请求:
- 当
jmEncrypt.baseUrl 配置为站点根地址时,请求会发送到
/api/plugin_remote_service.php/openapi/v1/*.php
- 当
jmEncrypt.baseUrl 直接配置为
https://your-host/api/plugin_remote_service.php
时,插件会直接在该脚本后拼接 /openapi/v1/*.php
- 签名路径仍然保持
/openapi/v1/status.php、/openapi/v1/encode.php、/openapi/v1/download.php
命令
LOAKPHP: Open Dashboard
LOAKPHP: 配置加密 KEY
LOAKPHP: 验证加密 KEY
LOAKPHP: 加密当前文件并替换
LOAKPHP: 加密选中文件并替换
配置项
jmEncrypt.baseUrl
加密服务站根地址或完整 plugin_remote_service.php 地址,默认 https://sg.rulewl.com
jmEncrypt.phpVersions
提交给 openapi/v1/encode.php 的 PHP 版本数组
jmEncrypt.projectId
对应 proj_id
jmEncrypt.projectKey
对应 project_key
jmEncrypt.skipScan
是否跳过服务端安全扫描
jmEncrypt.backupBeforeReplace
替换前是否自动生成 .bak 备份
API 映射
- KEY 验证:
GET /openapi/v1/status.php
- 上传加密:
POST /openapi/v1/encode.php
- 下载结果:
GET /openapi/v1/download.php?id={file_id}
插件本地生成签名,请求头与当前项目文档保持一致:
X-API-Key
X-Timestamp
X-Nonce
X-Signature
签名算法:
signature = HMAC_SHA256(
apiKey + timestamp + nonce + method + path,
apiKey
)
替换策略
- 单文件加密时,直接用 ZIP 内匹配到的 PHP 文件覆盖原文件
- 多文件或目录加密时,插件先把文件按相对路径打成 ZIP 上传
- 下载结果后按相对路径精确匹配并覆盖
- 若未匹配到精确路径,则退化为唯一文件名匹配
打包
cd vscode-extension
npm install
npm run package
执行后会生成 .vsix 包,可直接在 VS Code 中安装。
| |