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