指纹清除器 (Sensitive Scanner)
📖 简介
指纹清除器是一款 VS Code 插件,专注于检测和清除代码中的敏感信息。支持传统正则表达式扫描和 AI 智能扫描两种模式,帮助开发者在代码提交前及时发现并处理敏感数据泄露风险。
✨ 功能特性
- 🔍 实时扫描 - 文件打开或编辑时自动检测敏感信息
- 🤖 AI 智能扫描 - 基于大语言模型的上下文理解,减少误报
- ⚡ 正则扫描 - 快速、离线的传统正则表达式匹配
- 🔧 快速修复 - 一键清空敏感信息或删除整行
- 📁 目录扫描 - 递归扫描整个目录中的所有文件
- 🔄 自动降级 - AI 失败时自动回退到正则扫描
支持的敏感信息类型
| 类型 |
示例 |
严重级别 |
| 手机号码 |
13812345678 |
🟡 Warning |
| 身份证号 |
110101199001011234 |
🔴 Error |
| 电子邮箱 |
user@example.com |
🔵 Information |
| IPv4 地址 |
192.168.1.1 |
🟡 Warning |
🚀 快速开始
前置要求
- VS Code 1.100.0 或更高版本
- Python 3.8+ (仅 AI 扫描模式需要)
- 网络连接 (使用远程 AI 模型时需要)
安装插件
- 下载最新版本的
.vsix 文件
- 打开 VS Code,按
Ctrl+Shift+P (Windows/Linux) 或 Cmd+Shift+P (Mac)
- 输入
Extensions: Install from VSIX...
- 选择下载的
.vsix 文件
首次使用
使用正则扫描(无需额外配置)
插件默认使用正则扫描模式,安装后即可使用:
- 打开任意代码文件
- 插件会自动扫描并在编辑器中标记敏感信息
- 将鼠标悬停在标记上查看详细信息
- 点击快速修复图标可一键清除
使用 AI 扫描(需要配置)
如果需要更高准确度的 AI 扫描:
# 安装 Python 依赖
pip install -r requirements.txt
# 配置 AI 模型(见下文配置指南)
⚙️ 配置指南
基础配置
打开 VS Code 设置 (File > Preferences > Settings),搜索 "Sensitive Scanner":
| 配置项 |
类型 |
默认值 |
说明 |
sensitiveScanner.enable |
boolean |
true |
启用或禁用扫描器 |
sensitiveScanner.pythonPath |
string |
"python" |
Python 解释器路径 |
sensitiveScanner.debounceDelay |
number |
500 |
扫描防抖延迟(毫秒) |
AI 扫描配置
| 配置项 |
类型 |
默认值 |
说明 |
sensitiveScanner.useAI |
boolean |
true |
启用 AI 扫描模式 |
sensitiveScanner.aiApiUrl |
string |
"http://xx:xx/v1" |
AI 模型 API 地址 |
sensitiveScanner.aiApiKey |
string |
"1234" |
API 密钥 |
sensitiveScanner.aiModel |
string |
"Qwen3" |
模型名称 |
sensitiveScanner.aiTemperature |
number |
0.3 |
温度参数 (0-2) |
sensitiveScanner.aiTimeout |
number |
30 |
请求超时时间(秒) |
sensitiveScanner.aiMaxTokens |
number |
1000 |
最大 token 数 |
sensitiveScanner.fallbackToRegex |
boolean |
true |
AI 失败时回退到正则 |
配置示例
本地 Ollama 配置
{
"sensitiveScanner.useAI": true,
"sensitiveScanner.aiApiUrl": "http://localhost:11434/v1",
"sensitiveScanner.aiApiKey": "",
"sensitiveScanner.aiModel": "llama2",
"sensitiveScanner.aiTemperature": 0.3
}
远程大模型配置
{
"sensitiveScanner.useAI": true,
"sensitiveScanner.aiApiUrl": "https://api.openai.com/v1",
"sensitiveScanner.aiApiKey": "sk-your-api-key-here",
"sensitiveScanner.aiModel": "gpt-3.5-turbo",
"sensitiveScanner.aiTimeout": 30,
"sensitiveScanner.fallbackToRegex": true
}
自定义内网模型配置
{
"sensitiveScanner.useAI": true,
"sensitiveScanner.aiApiUrl": "http://localhost:12121/v1",
"sensitiveScanner.aiApiKey": "your-internal-key",
"sensitiveScanner.aiModel": "Qwen",
"sensitiveScanner.aiTemperature": 0.3,
"sensitiveScanner.aiMaxTokens": 1500
}
仅使用正则扫描(最快速度)
{
"sensitiveScanner.useAI": false,
"sensitiveScanner.debounceDelay": 200
}
📚 使用说明
自动扫描
插件启动后会自动监听以下事件:
- 📂 文件打开 - 打开文件时立即扫描
- ✏️ 文档编辑 - 编辑停止后延迟扫描(防抖)
- 💾 文件保存 - 保存时触发扫描
扫描结果会以波浪线标记在编辑器中:
- 🔴 红色波浪线 - 严重错误(如身份证号)
- 🟡 黄色波浪线 - 警告(如手机号)
- 🔵 蓝色波浪线 - 信息(如邮箱)
手动命令
按 Ctrl+Shift+P (Windows/Linux) 或 Cmd+Shift+P (Mac) 打开命令面板:
| 命令 |
说明 |
指纹清除-扫描当前文件 |
手动扫描当前打开的文件 |
指纹清除-切换扫描器开关 |
启用或禁用扫描器 |
指纹目录扫描 |
扫描选定目录中的所有文件 |
目录扫描
在 VS Code 资源管理器中:
- 右键点击任意文件夹
- 选择
指纹目录扫描
- 等待扫描完成(会显示进度条)
- 在"问题"面板中查看所有检测结果
快速修复
当检测到敏感信息时:
- 点击波浪线标记或将光标移动到该位置
- 点击左侧出现的灯泡图标 💡
- 选择以下操作之一:
- 清空敏感信息 - 将内容替换为空字符串
- 删除此行 - 删除整行代码
🤖 AI 扫描模式详解
工作原理
AI 扫描模式使用大语言模型 (LLM) 进行智能分析,能够理解上下文并区分真实数据和示例代码。
优势:
- 🧠 理解上下文,区分真实数据和示例代码
- 📉 显著降低误报率
- 🎯 更准确地识别敏感信息
劣势:
- ⏱️ 速度较慢(秒级响应)
- 💰 可能产生 API 调用费用
- 🌐 需要网络连接(本地模型除外)
支持的模型
OpenAI 系列
- GPT-3.5 Turbo(推荐,性价比高)
- GPT-4(准确度最高)
- GPT-4 Turbo
本地 Ollama 模型
- LLaMA 2
- Mistral
- Qwen
- DeepSeek Coder
自定义部署
任何支持 OpenAI API 兼容格式的模型服务:
- 阿里云通义千问
- 腾讯混元
- 百度文心一言
- 智谱 ChatGLM
- 私有化部署的开源模型
AI vs 正则对比
| 特性 |
正则扫描 |
AI 扫描 |
| 速度 |
⚡ 毫秒级 |
🐌 1-5 秒 |
| 准确度 |
🟡 中等 |
🟢 高 |
| 误报率 |
🟡 中等 |
🟢 低 |
| 上下文理解 |
❌ 不支持 |
✅ 支持 |
| 离线使用 |
✅ 完全离线 |
⚠️ 需网络(本地模型除外) |
| 成本 |
🆓 免费 |
💰 可能收费 |
| Python 依赖 |
❌ 不需要 |
✅ 需要 langchain |
推荐使用场景:
- 正则扫描 - 日常开发、快速反馈、离线环境
- AI 扫描 - 代码审查、提交前检查、关键项目
依赖管理
安装 Python 依赖
# 使用 requirements.txt
pip install -r requirements.txt
# 或手动安装
pip install langchain>=0.1.0
pip install langchain-openai>=0.0.5
pip install langchain-core>=0.1.0
依赖检测
插件会在启动时自动检测 Python 依赖:
- ✅ 依赖完整 - 正常使用 AI 扫描
- ⚠️ 缺少依赖 - 弹出提示框,提供安装命令
- 🔄 自动降级 - 如果启用了
fallbackToRegex,会自动使用正则扫描
🐛 故障排除
常见问题
1. AI 扫描不工作
症状: 没有检测结果或一直使用正则扫描
可能原因和解决方案:
# 检查 Python 是否安装
python --version
# 检查依赖是否安装
pip list | grep langchain
# 安装缺失的依赖
pip install langchain langchain-openai langchain-core
# 检查配置
# 确保 settings.json 中 useAI 为 true
2. API 连接失败
症状: 提示 "AI扫描失败: Connection error"
检查清单:
- ✅
aiApiUrl 地址是否正确
- ✅ 网络是否可以访问该地址
- ✅
aiApiKey 是否有效
- ✅ 防火墙是否拦截
- ✅ 代理设置是否正确
测试连接:
# 使用 curl 测试 API
curl -X POST "http://your-api-url/v1/chat/completions" \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-3.5-turbo","messages":[{"role":"user","content":"Hello"}]}'
3. Python 未找到
症状: 提示 "spawn python ENOENT"
解决方案:
配置完整的 Python 路径:
{
"sensitiveScanner.pythonPath": "C:\\Python39\\python.exe" // Windows
// "sensitiveScanner.pythonPath": "/usr/bin/python3" // Linux/Mac
}
查找 Python 路径:
# Windows
where python
# Linux/Mac
which python3
4. 扫描速度慢
优化建议:
{
// 增加防抖延迟,减少扫描频率
"sensitiveScanner.debounceDelay": 1000,
// 使用正则扫描
"sensitiveScanner.useAI": false,
// 或使用更快的本地模型
"sensitiveScanner.aiModel": "gpt-3.5-turbo", // 比 GPT-4 快
// 减少 token 数
"sensitiveScanner.aiMaxTokens": 500
}
5. 误报太多
调整策略:
- 启用 AI 扫描 - 更准确的上下文理解
- 调整正则规则 - 联系管理员修改检测规则
- 调整防抖延迟 - 增加延迟以减少频繁扫描
6. 编码问题(中文乱码)
Windows 用户:
确保系统支持 UTF-8 编码,插件已内置编码处理机制。如仍有问题,请检查 VS Code 的文件编码设置。
📋 更新日志
v0.0.4(即将发布)
- ✨ 添加目录级扫描功能
- 🐛 修复文件移动或删除后检测信息未消失的 BUG
v0.0.3(当前版本)
v0.0.2
v0.0.1
- 🎉 首次发布
- ✅ 基础正则扫描功能
- ✅ 支持手机号、身份证、邮箱检测
📞 联系方式
- 作者: JackMacros
- 版本: 0.0.3
- 问题反馈: 请联系开发团队