💡 核心定位:本工具不仅面向开发者,更重要的是为日常用户设计。在将内容粘贴到 ChatGPT、Claude、文心一言等网页 LLM 之前,先用本工具清洗一遍,避免把身份证号、Token、客户数据、公司机密等敏感信息一股脑粘进去。
- 🔒 本地优先:完全离线运行,不上传任何内容,保护隐私安全
- 📊 可解释:提供详细的清洗报告,说明命中了什么、为什么、如何替换
- ⚡ 轻量快速:处理 50k 字符文本 < 1 秒,性能优异
- 🎯 精准识别:支持手机号、邮箱、身份证、IP、域名、Token、密码、私钥等多种敏感信息
- 🛡️ 灵活配置:支持多种清洗策略、强度级别、类别开关、白名单
- 📈 风险评分:提供 0-100 的风险评分和详细统计
- 🔧 易于扩展:插件化架构,支持自定义检测器和清洗策略
- 🌐 跨平台:支持 Windows、macOS、Linux 三大平台
| 层级 | 技术 | 说明 |
|---|---|---|
| 前端 | TypeScript + Vue 3 | 现代化 UI 框架,类型安全 |
| 桌面框架 | Tauri 2 | 轻量级跨平台桌面应用框架 |
| 核心引擎 | Go | 高性能文本处理引擎(sidecar 模式) |
| 桥接层 | Rust | 系统级编程,进程管理 |
| 通信协议 | JSON over stdin/stdout | 简单高效的进程间通信 |
PromptSanitizer 采用前后端分离 + Sidecar 模式的架构设计,将 UI 层与核心处理引擎解耦,既保证了性能,又实现了跨平台兼容性。
┌─────────────────────────────────────────────────────────────┐
│ 用户界面层 (UI Layer) │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ Vue 3 + TypeScript │ │
│ │ - 输入/输出面板 │ │
│ │ - 配置面板 │ │
│ │ - 报告视图 │ │
│ │ - Diff 对比视图 │ │
│ └───────────────────────────────────────────────────────┘ │
└───────────────────────┬─────────────────────────────────────┘
│ Tauri Commands (IPC)
│ JSON over invoke()
▼
┌─────────────────────────────────────────────────────────────┐
│ Tauri 桥接层 (Bridge Layer) │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ Rust (src-tauri/src/main.rs) │ │
│ │ - sanitize() 命令处理 │ │
│ │ - 文件操作 (read_file, open_file_dialog) │ │
│ │ - 进程管理 (启动/调用 Go sidecar) │ │
│ └───────────────────────────────────────────────────────┘ │
└───────────────────────┬─────────────────────────────────────┘
│ stdin/stdout (JSON)
│ 进程间通信
▼
┌─────────────────────────────────────────────────────────────┐
│ Go 核心引擎 (Engine Layer) │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ engine/ │ │
│ │ ├── cmd/main.go 入口点,JSON 协议处理 │ │
│ │ ├── internal/engine/ 引擎核心逻辑 │ │
│ │ ├── internal/detector/ 检测器集合 │ │
│ │ │ ├── phone.go 手机号检测 │ │
│ │ │ ├── email.go 邮箱检测 │ │
│ │ │ ├── id_card.go 身份证检测 │ │
│ │ │ ├── token.go Token/Key 检测 │ │
│ │ │ └── ... 其他检测器 │ │
│ │ └── internal/sanitizer/ 清洗策略实现 │ │
│ │ ├── mask.go 打码策略 │ │
│ │ ├── redact.go 占位符策略 │ │
│ │ └── pseudonym.go 一致化策略 │ │
│ └───────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
- 职责:用户交互、界面展示、状态管理
- 位置:
apps/tauri/src/ - 组件:
App.vue- 主应用容器MainPanel.vue- 文本输入/输出面板ConfigPanel.vue- 配置面板FindingsList.vue- 命中列表ReportView.vue- 报告视图
- 职责:进程管理、文件操作、IPC 桥接
- 位置:
apps/tauri/src-tauri/src/main.rs - 关键功能:
- 调用 Go sidecar 二进制文件
- 通过 stdin/stdout 传递 JSON 请求/响应
- 处理文件对话框和文件读取
- 职责:敏感信息检测、文本清洗、风险评分
- 位置:
engine/go/ - 核心模块:
- 检测器 (Detector):每种敏感信息类型对应一个检测器,实现
Detector接口 - 清洗器 (Sanitizer):根据策略执行文本替换
- 引擎 (Engine):协调检测器和清洗器,处理白名单、去重、统计等
- 检测器 (Detector):每种敏感信息类型对应一个检测器,实现
用户输入文本
│
▼
Vue 组件收集配置 (策略/强度/类别)
│
▼
Tauri invoke("sanitize", request)
│
▼
Rust 序列化 JSON → 启动 Go 进程
│
▼
Go 引擎处理流程:
1. 解析请求
2. 根据 enabled_categories 选择检测器
3. 并行/串行执行检测
4. 应用白名单过滤
5. 去重处理
6. 根据策略执行清洗
7. 计算统计和风险评分
│
▼
Go 输出 JSON 响应
│
▼
Rust 解析响应 → 返回给前端
│
▼
Vue 更新 UI (显示清洗结果/报告/统计)
PromptSanitizer/
├── apps/
│ └── tauri/ # Tauri 桌面应用
│ ├── src/ # 前端代码
│ │ ├── components/ # Vue 组件
│ │ │ ├── MainPanel.vue # 主文本面板
│ │ │ ├── ConfigPanel.vue # 配置面板
│ │ │ ├── FindingsList.vue # 命中列表
│ │ │ └── ReportView.vue # 报告视图
│ │ ├── App.vue # 主应用
│ │ ├── types.ts # TypeScript 类型定义
│ │ └── main.ts # 入口文件
│ └── src-tauri/ # Rust 后端
│ ├── src/
│ │ └── main.rs # Tauri 命令定义
│ ├── Cargo.toml # Rust 依赖
│ └── bin/ # Go sidecar 二进制位置
│
├── engine/
│ └── go/ # Go 核心引擎
│ ├── cmd/
│ │ └── main.go # 入口:stdin/stdout JSON 协议
│ ├── internal/ # 内部包(不对外暴露)
│ │ ├── detector/ # 检测器集合
│ │ │ ├── detector.go # Detector 接口定义
│ │ │ ├── phone.go # 手机号检测器
│ │ │ ├── email.go # 邮箱检测器
│ │ │ ├── id_card.go # 身份证检测器
│ │ │ ├── ip.go # IP 检测器
│ │ │ ├── domain.go # 域名检测器
│ │ │ ├── token.go # Token/Key 检测器
│ │ │ ├── password.go # 密码检测器
│ │ │ └── private_key.go # 私钥检测器
│ │ ├── sanitizer/ # 清洗策略实现
│ │ │ └── sanitizer.go # Mask/Redact/Pseudonym
│ │ └── engine/ # 引擎核心
│ │ └── engine.go # 协调检测和清洗
│ ├── pkg/ # 公开包(可被外部引用)
│ │ └── types/ # 类型定义
│ │ └── types.go # Request/Response 结构
│ └── testdata/ # 测试数据
│ ├── sample.txt # 样例文本
│ └── golden.json # 期望输出
│
└── docs/ # 文档
├── protocol.md # 通信协议文档
├── usage.md # 使用指南
├── development.md # 开发指南
└── privacy.md # 隐私声明
问题:为什么不用纯 Rust 或纯 Go 实现整个应用?
答案:
- Go 的优势:文本处理、正则匹配、并发处理性能优异,生态丰富(如 gosec、truffleHog 等安全工具)
- Rust 的优势:系统级编程、内存安全、与 Tauri 深度集成
- 分离的好处:
- 核心引擎可以独立测试和部署
- 未来可以轻松提供 CLI、SDK、HTTP API 等多种形态
- 引擎升级不影响 UI 层
问题:为什么不使用 gRPC、HTTP 或其他协议?
答案:
- 简单性:无需网络栈,进程间通信足够
- 跨平台:stdin/stdout 在所有平台都可用
- 性能:对于一次性请求,进程启动开销可接受(< 100ms)
- 隔离性:每次请求独立进程,崩溃不影响主应用
- 调试友好:可以直接用命令行测试 Go 引擎
权衡:
- 如果未来需要长连接或流式处理,可以考虑切换到 gRPC
- 当前架构已预留
semantic_mode字段,支持未来可能的 LLM 增强模式
设计:每种敏感信息类型对应一个独立的检测器,实现统一的 Detector 接口。
优势:
- 可扩展性:添加新类型只需实现新检测器,无需修改核心逻辑
- 可测试性:每个检测器可以独立单元测试
- 可配置性:通过
enabled_categories灵活开关 - 可维护性:代码职责清晰,易于理解和修改
接口设计:
type Detector interface {
Category() Category // 返回检测类别
Detect(text string, level Level) []Finding // 执行检测
}设计:清洗策略(Mask/Redact/Pseudonym)独立实现,可插拔。
优势:
- 灵活性:用户可以根据场景选择策略
- 可扩展:未来可以添加新策略(如加密替换、哈希替换)
- 一致性:所有策略遵循相同接口,易于测试
设计理念:
- 所有处理在本地完成,不上传任何数据
- 不记录原文到日志
- 报告中只显示掩码预览
原因:
- 隐私保护:用户可能清洗包含公司机密、个人隐私的内容
- 合规性:某些行业(金融、医疗)不允许数据外传
- 信任:开源 + 本地处理,用户可以审查代码
设计:每个检测结果包含 reason 字段,说明为什么被识别为敏感信息。
价值:
- 用户信任:用户知道为什么某个内容被清洗
- 误报处理:用户可以判断是否是误报,并添加到白名单
- 学习价值:帮助用户了解哪些信息是敏感的
设计:提供 0-100 的风险评分,综合考虑:
- 单个检测结果的风险等级(0-100)
- 检测结果的数量
- 高危类型的权重
用途:
- 快速判断:用户一眼看出文本风险等级
- 优先级排序:高危内容单独提示
- 决策支持:帮助用户决定是否需要人工审核
| 技术 | 选型理由 |
|---|---|
| Tauri 2 | 相比 Electron 更轻量(~10MB vs ~100MB),性能更好,Rust 后端更安全 |
| Vue 3 | 渐进式框架,学习曲线平缓,适合快速开发 UI |
| Go | 文本处理性能优异,并发能力强,适合实现检测引擎 |
| TypeScript | 类型安全,减少运行时错误,提升开发体验 |
| JSON 协议 | 简单、可读、易调试,无需额外依赖 |
- 多形态支持:核心引擎独立,可以轻松提供 CLI、SDK、HTTP API
- 插件化检测器:未来可以支持用户自定义检测器(通过配置文件或插件)
- LLM 增强:预留
semantic_mode字段,支持可选的语义级识别 - 批量处理:当前架构支持扩展为批量文件处理
- 云端规则更新:未来可以可选地从云端更新检测规则(用户可选择)
💡 应用界面截图(待添加)
访问 Releases 页面下载对应平台的安装包:
- Windows:
PromptSanitizer-Setup-x.x.x.exe - macOS:
PromptSanitizer-x.x.x.dmg - Linux:
PromptSanitizer-x.x.x.AppImage
| 工具 | 版本要求 | 说明 |
|---|---|---|
| Node.js | 18+ | JavaScript 运行时 |
| Rust | 1.70+ | 系统编程语言 |
| Go | 1.21+ | 核心引擎语言 |
| Tauri CLI | Latest | npm install -g @tauri-apps/cli |
# 1. 克隆仓库
git clone https://github.com/MapleQiAN/PromptSanitizer.git
cd PromptSanitizer
# 2. 安装依赖
npm install
# 3. 构建 Go 引擎
cd engine/go
go build -o ../../apps/tauri/src-tauri/bin/prompt-sanitizer.exe ./cmd/main.go
# 4. 开发模式运行
cd ../../apps/tauri
npm run tauri dev.\build.batchmod +x build-linux.sh
./build-linux.shchmod +x build-macos.sh
./build-macos.shchmod +x build.sh
./build.sh # 自动检测平台
./build.sh linux # 指定 Linux
./build.sh macos # 指定 macOS# Linux (推荐使用 WSL)
.\build-linux-wsl.bat
# Linux (原生交叉编译,需要额外配置)
.\build-cross-windows.bat linux
# macOS (几乎不可行,建议在 macOS 上构建)
.\build-cross-windows.bat macos
⚠️ 注意:
- Linux 交叉编译: ✅ 可行,推荐使用 WSL (
build-linux-wsl.bat)- macOS 交叉编译: ❌ 几乎不可行,需要 macOS SDK(Windows 上不可用),强烈建议在 macOS 上构建
构建产物将输出到 apps/tauri/src-tauri/target/release/bundle/
详细构建说明请参考: BUILD_GUIDE.md 或 docs/building.md
# Go 引擎测试
cd engine/go
go test ./...
# 前端测试(如果配置了)
cd apps/tauri
npm test- 启动应用:运行桌面应用或使用 CLI
- 输入文本:粘贴或输入需要清洗的文本
- 配置选项:选择清洗策略、强度级别和敏感信息类别
- 执行清洗:点击"清洗"按钮
- 查看结果:查看清洗后的文本、报告和风险评分
# 清洗文本文件
prompt-sanitizer --input input.txt --output output.txt --strategy mask
# 使用自定义配置
prompt-sanitizer --input input.txt --config config.json
# 查看帮助
prompt-sanitizer --help| 指标 | 数值 | 说明 |
|---|---|---|
| 处理速度 | < 1 秒 | 50k 字符文本 |
| 内存占用 | < 50 MB | 运行时内存 |
| 应用大小 | ~10 MB | 安装包大小 |
| 启动时间 | < 500ms | 冷启动时间 |
PromptSanitizer/
├── apps/
│ └── tauri/ # Tauri 桌面应用
│ ├── src/ # Vue 3 + TypeScript 前端
│ └── src-tauri/ # Rust 桥接层
├── engine/
│ └── go/ # Go 核心引擎
│ ├── cmd/ # 主程序入口
│ ├── internal/ # 内部包(检测器、清洗器、引擎)
│ └── pkg/ # 公开包(类型定义)
├── docs/ # 项目文档
│ ├── protocol.md # 通信协议文档
│ ├── usage.md # 使用指南
│ ├── development.md # 开发指南
│ └── privacy.md # 隐私声明
├── build.bat # Windows 构建脚本
├── build.sh # Linux/macOS 构建脚本
└── README.md # 项目说明文档
📝 更详细的项目结构说明请参考 项目架构 部分
| 类型 | 说明 | 检测方式 | 风险等级 |
|---|---|---|---|
| 📱 手机号 | 中国手机号(11位) | 正则 + 号段校验 | |
| 📧 邮箱地址 | 标准邮箱格式 | 正则 + 域名验证 | |
| 🆔 身份证号 | 中国居民身份证 | 正则 + 校验位算法 | 🔴 高 |
| 🌐 IP 地址 | IPv4 地址 | 正则 + 范围校验 | |
| 🔗 域名/URL | 域名和完整 URL | 正则 + TLD 验证 | |
| 🔑 Token/Key | API Key、Bearer Token、JWT、Cookie | 前缀匹配 + 熵值检测 | 🔴 高 |
| 🔐 密码字段 | 密码相关内容 | 上下文关键词 + 模式匹配 | 🔴 高 |
| 🔒 私钥片段 | PEM 格式私钥 | 格式识别 + 特征检测 | 🔴 高 |
| 策略 | 说明 | 示例 |
|---|---|---|
| Mask | 部分打码,保留少量前后缀 | 138****5678 |
| Redact | 替换成占位符 | [REDACTED:PHONE] |
| Pseudonym | 一致化替换,同一实体全文保持同一代号 | 张三 → [PERSON_1] |
| 强度 | 说明 | 适用场景 |
|---|---|---|
| 宽松 | 只识别明显的高风险内容 | 日常使用,减少误报 |
| 标准 | 平衡误报和漏报 | 推荐默认设置 |
| 严格 | 尽可能识别所有可能的敏感信息 | 高安全要求场景 |
- ✅ 支持粘贴/输入一段文本进行清洗
- ✅ 支持导入文本文件进行清洗
- ✅ 输出清洗后的文本
- ✅ 生成一份清洗报告(命中类型与数量)
- ✅ 提供清洗前后对比视图(Diff 视图)
- ✅ 手机号(中国手机号,含校验)
- ✅ 邮箱地址
- ✅ 身份证号/护照号(含校验位验证)
- ✅ 住址信息
- ✅ 姓名(可选,默认宽松避免误伤)
- ✅ 车牌号
- ✅ 生日/日期信息
- ✅ API Key(常见前缀:sk-、AKIA、ghp_ 等)
- ✅ Access Token / Bearer Token
- ✅ JWT(JSON Web Token)
- ✅ Cookie 信息
- ✅ SSH Key / 私钥片段(PEM 格式)
- ✅ 密码字段与口令内容(上下文辅助检测)
- ✅ 银行卡号(含 Luhn 校验)
- ✅ 交易流水号
- ✅ 工资信息
- ✅ 报销单号
- ✅ 内部域名
- ✅ 工号/员工编号
- ✅ 客户名单/联系人信息(名单式敏感)
- ✅ 合同编号
- ✅ 项目代号
- ✅ 服务器 IP / 内网段
- ✅ 精确定位(GPS 坐标)
- ✅ 家庭/公司地址
- ✅ 行程安排
- ⚙️ 医疗信息(可选开关)
- ⚙️ 未成年人相关信息(可选开关)
- ✅ 打码式处理(Mask):部分隐藏,如
138****1234 - ✅ 整段替换(Redact):替换为占位符,如
[REDACTED:PHONE] - ✅ 一致化替换(Pseudonymize):同一对象全篇保持同一代号,如
张三 → [PERSON_1] - ✅ 保留部分信息:用于可读性,例如仅保留后四位
- ⚙️ 仅标注模式:只标注不替换(用于审核场景)
- ✅ 清洗强度等级(宽松/标准/严格)
- ✅ 按类别开关(比如只清 token,不清手机号)
- ✅ 自定义敏感类别与命名
- ✅ 添加自定义规则(正则表达式)
- ✅ 白名单(Allowlist):不清洗某些内容(如测试手机号、示例邮箱)
- ✅ 黑名单(Denylist):强制清洗某些内容(如公司内部编号规则)
- ⚙️ 逐条确认替换(Review Mode):人工审核模式,对高风险场景很重要
- ✅ 一键撤销清洗:别让用户因为一次清洗把原文弄丢
- ⚙️ 仅恢复某一类替换:选择性回滚
- ⚙️ 误报标记:对某条命中标记为误报并忽略
- ✅ 整体文本风险等级提示(0-100 分)
- ✅ 高危内容单独提示:密钥、私钥、密码等高危类型单独标记
- ✅ 每类敏感信息的风险权重显示(用于解释评分)
- ✅ Markdown 文本清洗(保留格式)
- ✅ 代码片段内容清洗(避免误判代码变量名)
- ✅ JSON 内容清洗(只替换值,不破坏格式)
- ✅ YAML 内容清洗(保留结构)
- ✅ 保留原有排版与结构(输出不乱)
- ✅ 桌面应用(Tauri):开箱即用,适合日常用户
- ✅ 命令行工具(CLI):最通用,适合开发者
- ⚙️ SDK:可嵌入到别的应用(Python/JS)
- ⚙️ 浏览器扩展:复制粘贴前自动扫描(杀伤力巨大)
- ⚙️ IDE 插件:在写 Prompt 的地方提醒(Cursor/VS Code)
- ⚙️ 批量处理多个文件
- ⚙️ 生成汇总报告(项目级统计)
- ⚙️ Git pre-commit hook:防止把 prompt 文件里的敏感信息提交上去
- ⚙️ GitHub Action:PR 扫描(对团队特别有吸引力)
- ⚙️ Webhook/HTTP API(可选):给别的工具调用
- ✅ 清晰的使用说明与示例
- ⚙️ 常见误报场景说明
- ⚙️ "我能做什么/我做不到什么"的声明
- ⚙️ 一套匿名示例数据用于演示
- ✅ 本地优先:默认离线运行,不把文本上传到任何地方
- ✅ 确定性:同样输入同样输出(方便审计)
- ✅ 不记录原文:日志只记录统计,不落全文
- ✅ 敏感输出保护:报告里也不把原始密钥打印出来(最多显示前后几位)
- ⚙️ 配置可加密(加分):例如保存 allowlist/映射表时可选加密
- ⚙️ 威胁模型说明:README 写清楚防什么、不防什么
- 🔮 语义级去标识:北京市海淀区XX小区 → 北京市某城区某小区
- 🔮 角色替换:王经理 → 某管理人员
- 🔮 保留任务可用性:清洗后还能让模型完成工作,而不是变成 [REDACTED] 大杂烩
💡 图例说明:
- ✅ 已实现或计划实现的核心功能
- ⚙️ 加分功能(计划中)
- 🔮 进阶功能(未来野心)
| 文档 | 说明 | 链接 |
|---|---|---|
| 📖 通信协议 | Go 引擎与前端之间的 JSON 通信协议 | protocol.md |
| 📖 使用指南 | 详细的使用说明和示例 | usage.md |
| 📖 开发指南 | 开发者文档和贡献指南 | development.md |
| 📖 隐私声明 | 隐私保护和安全说明 | privacy.md |
| 📖 快速开始 | 5 分钟快速上手指南 | QUICKSTART.md |
| 原则 | 说明 | 状态 |
|---|---|---|
| 🔒 本地优先 | 所有处理完全在本地进行,不上传任何数据 | ✅ |
| 📝 零日志 | 不记录原文到日志,只记录统计信息 | ✅ |
| 🎭 掩码保护 | 报告中的敏感内容仅显示掩码预览 | ✅ |
| 🌐 离线运行 | 不发送任何网络请求(除非明确启用未来可能的 LLM 增强模式) | ✅ |
| 🔓 开源透明 | 所有代码开源可审查,确保无后门 | ✅ |
- 防止在 Prompt 中意外泄露敏感信息
- 防止将公司机密、客户数据发送给第三方 LLM
- 防止个人隐私信息(身份证、手机号等)被上传
- 防止 API Key、Token 等密钥泄露
- 不能防止恶意用户故意绕过检测
- 不能防止已加密的敏感信息(需要先解密)
- 不能防止语义级别的信息泄露(如"我的生日是昨天")
- 不能防止图片、音频等非文本格式的敏感信息
📝 更多安全说明请参考 docs/privacy.md
我们欢迎安全研究人员报告安全问题。请通过 Security Advisories 提交安全漏洞报告。
我们非常欢迎社区贡献!无论是代码、文档、测试还是反馈,都是对项目的宝贵支持。
-
🐛 报告问题
- 在 Issues 中提交 Bug 报告
- 使用 Issue 模板,提供详细的重现步骤
-
💡 提出建议
- 在 Discussions 中分享想法
- 或创建 Feature Request Issue
-
🔧 提交代码
# Fork 项目 git clone https://github.com/MapleQiAN/PromptSanitizer.git cd PromptSanitizer # 创建功能分支 git checkout -b feature/your-feature-name # 提交更改 git commit -m "Add: your feature description" # 推送到 Fork git push origin feature/your-feature-name # 创建 Pull Request
-
📝 完善文档
- 改进 README、文档或注释
- 添加使用示例和教程
感谢所有为项目做出贡献的开发者!
详细的贡献指南请查看 docs/development.md
本项目采用 MIT License 开源协议。
MIT License
Copyright (c) 2024 PromptSanitizer Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
如果这个项目对你有帮助,请给个 Star ⭐️
⭐ 如果这个项目对你有帮助,请给个 Star!
Made with ❤️ by the PromptSanitizer Team
⭐ Star | 🍴 Fork | 📝 Issue | 💬 Discuss
| Phase | 状态 | 进度 |
|---|---|---|
| Phase 1: MVP 核心功能 | ✅ 已完成 | 100% |
| Phase 2: 可控性与可解释性 | 🚧 进行中 | 60% |
| Phase 3: 多格式与场景适配 | 📋 计划中 | 0% |
| Phase 4: 生态与集成 | 📋 计划中 | 0% |
| Phase 5: 进阶功能 | 🔮 未来规划 | 0% |
- 规则检测 + 校验(手机号、身份证校验位、银行卡 Luhn)
- Secret 扫描(高熵字符串检测 + 常见 Key 前缀)
- 三种替换策略(Mask / Redact / Pseudonymize)
- 清洗报告 + Diff 视图
- 基础配置(强度级别、类别开关)
- 风险评分系统
- Allowlist / Denylist 机制
- 自定义规则包
- Review Mode(逐条确认替换)
- 误报管理(规则命名 + 规则开关)
- Markdown / JSON / YAML 结构化处理
- 代码友好检测(避免误判变量名)
- 保留结构输出
- CLI 工具
- SDK(Python/JS)
- 浏览器扩展
- IDE 插件(Cursor/VS Code)
- Git pre-commit hook
- GitHub Action
- 批量文件处理
- 项目级汇总报告
- 语义级去标识(可选插件)
- LLM 增强模式(可选,默认关闭)
💡 当前进度:Phase 1 已完成,正在推进 Phase 2。查看 Projects 了解详细任务规划。