ENC Editor
VS Code 上查看和编辑 [ENC]...[/ENC] 加密块的插件。
AES-256-GCM 加密,悬停即解密,实时校验完整性,密码超时自动清除。
功能一览
| 功能 |
说明 |
| 🔓 悬停解密 |
鼠标悬停在 [ENC]...[/ENC] 块上,即时显示解密后的明文 |
| 🟡🔴 实时校验 |
黄色高亮 = 密文完好;红色高亮 = 密文被篡改或损坏 |
| 🔐 一键激活 + 重置密码 |
右键菜单统一入口,首次为激活,再次点击可重置密码 |
| ⚙️ 加密强度可调 |
右键菜单设置 scrypt N 参数,在安全性与性能间自由选择 |
| ⏱ 密码自动清除 |
5 分钟无操作自动清空内存中的密码,防止泄露 |
| 📋 加密/解密复制 |
选中文本 → 右键 → 一键加密或解密并复制到剪贴板 |
| 🔄 主流加密格式 |
salt + nonce + ciphertext + tag,与 Go/Java 生态兼容 |
使用方法
1️⃣ 激活插件
右键选择 「ENC: 激活/重置密码」 → 在弹出的对话框中输入解密密码。
- 首次使用:输入密码 → 插件激活,ENC 块高亮 + 悬停生效
- 已有密码:再次点击 → 弹窗提示「ENC 插件已激活」,选择 「重置密码」 可修改密码
2️⃣ 查看加密内容
将鼠标悬停在黄色的 [ENC]...[/ENC] 区块上,即可看到解密后的明文(🔓 前缀)。
如果区块显示为红色,说明密文已被修改或损坏。
3️⃣ 加密文本
- 在编辑器中选中你要加密的文本
- 右键 → 「ENC: 明文→密文(复制加密)」
- 加密后的
[ENC]...[/ENC] 内容已复制到剪贴板,可直接粘贴
4️⃣ 解密文本
- 选中包含
[ENC]...[/ENC] 的文本
- 右键 → 「ENC: 密文→明文(复制解密)」
- 解密后的明文已复制到剪贴板
5️⃣ 调整加密强度
右键 → 「ENC: 设置(scrypt N 参数)」,选择你想要的档位:
| 档位 |
说明 |
| 16384 |
标准 — 最低安全门槛 |
| 32768 |
推荐(默认)— 安全性与性能均衡 |
| 65536 |
高强度 — 解密稍慢 |
| 131072 |
最高强度 — 解密明显变慢 |
⚠️ 修改前会弹出确认框,明确告知旧密文将无法解密,确认后才生效。设置会被记住,下次打开 VS Code 还在。
命令
| 右键菜单命令 |
快捷键 |
出现条件 |
说明 |
ENC: 激活/重置密码 |
— |
任意编辑区 |
激活插件 / 重置已有密码 |
ENC: 明文→密文(复制加密) |
— |
选中文本 |
加密并复制 [ENC]...[/ENC] |
ENC: 密文→明文(复制解密) |
— |
选中文本 |
解密 [ENC] 块并复制明文;密码错误可一键重置 |
ENC: 设置(scrypt N 参数) |
— |
任意编辑区 |
调整加密强度参数 |
加密格式
salt(16) + nonce(12) + ciphertext + tag(16)
↓ base64 编码
[ENC]base64 密文[/ENC]
| 段 |
长度 |
说明 |
| salt |
16 字节 |
随机盐值,用于 scrypt KDF |
| nonce |
12 字节 |
AES-GCM 初始化向量 |
| ciphertext |
可变 |
AES-256-GCM 加密后的密文 |
| tag |
16 字节 |
GCM 认证标签(完整性校验,末尾) |
格式说明:salt + nonce + ciphertext + tag(tag 在末尾)是业界主流布局,与 Go 标准库和 Java JCE 一致。
安全性
| 方面 |
措施 |
| 🔑 加密算法 |
AES-256-GCM(认证加密,防篡改) |
| 🧂 密钥派生 |
scrypt(N=32768, r=8, p=1,默认),暴力破解成本高 |
| 🎲 随机数 |
Node.js crypto.randomBytes,每次加密盐值 + nonce 均随机 |
| 💾 密码存储 |
Buffer 保存,清除时通过 fill(0) 覆写内存后再释放 |
| ⏱ 自动清除 |
5 分钟闲置自动清空密码 |
| 🔑 密钥缓存 |
缓存 key 加入密码 SHA-256 鉴别,不同密码不串用 |
| 📦 运行时依赖 |
零外部依赖,仅使用 Node.js 内置 crypto 模块 |
安装
从 VSIX 安装
code --install-extension ENC-editor-0.0.5.vsix
从源码构建
git clone <repo-url>
cd enc-editor
npm install
npm run compile
npx vsce package
code --install-extension ENC-editor-*.vsix
开发
# 编译
npm run compile
# 监听模式(自动重编译)
npm run watch
# 运行测试
npm test
按 F5 在 VS Code 中启动扩展开发宿主窗口进行调试。
技术栈
- TypeScript — 类型安全
- VS Code Extension API — HoverProvider、TextEditorDecorationType、commands
- Node.js crypto — AES-256-GCM、scrypt
- 零外部 npm 依赖
许可证
MIT
| |