kadir/cloakrs
GitHub: kadir/cloakrs
cloakrs 是一个用 Rust 编写的高效工具,用于检测和掩码文本、日志等多种格式中的个人身份信息以增强数据安全。
Stars: 43 | Forks: 1
# cloakrs
[](https://github.com/kadir/cloakrs/actions/workflows/ci.yml)
`cloakrs` 是一个 Rust 库和命令行工具,用于检测并掩码文本、日志、JSON、CSV 和数据库转储中的个人身份信息。
它内置了通用识别器,可用于识别电子邮件、电话号码、信用卡、IBAN、IP 地址、URL、API 密钥、JWT、AWS 访问密钥、MAC 地址、主机名、用户主目录路径、加密货币钱包地址以及上下文相关的出生日期。区域包则增加了特定国家的标识符,如美国社会安全号码、荷兰 BSN 号码、英国 NINO/NHS 号码、德国税务识别号、印度 Aadhaar/PAN 值、巴西 CPF/CNPJ 值以及法国 INSEE/NIR 号码。
完整的检测矩阵(包括验证算法、置信度范围和示例)请参见[支持的实体](docs/supported-entities.md)。
## 安装
```
cargo install cloakrs-cli
```
本地开发:
```
cargo build --workspace
cargo test --workspace
cargo run -p cloakrs-cli -- scan tests/fixtures/sample_text.txt
```
## 快速入门
```
use cloakrs_core::Locale;
let scanner = cloakrs_locales::default_registry()
.into_scanner_builder()
.locale(Locale::US)
.build()?;
let result = scanner.scan("Contact jane@example.com or ssn 123-45-6789")?;
assert_eq!(result.masked_text.as_deref(), Some("Contact [EMAIL] or ssn [SSN]"));
# Ok::<(), cloakrs_core::CloakError>(())
```
## CLI 示例
```
# 扫描文件并打印人类可读的报告。
cloakrs scan tests/fixtures/sample_text.txt --locale us --output-format text
# 为代码扫描系统生成 SARIF。
cloakrs audit . --output-format sarif --output cloakrs.sarif
# 仅扫描选定列以对 CSV 文件进行脱敏处理。
cloakrs scan users.csv --format csv --columns email,phone --output users.masked.csv
```
## 架构
工作区分为五个 crate,具有单向依赖关系:
```
cloakrs-core -> cloakrs-patterns -> cloakrs-locales -> cloakrs-adapters -> cloakrs-cli
```
- `cloakrs-core`:扫描器、识别器 trait、共享类型、掩码策略
- `cloakrs-patterns`:通用识别器,如电子邮件、电话号码、卡号、IBAN
- `cloakrs-locales`:国家特定识别器,如美国 SSN 和荷兰 BSN
- `cloakrs-adapters`:文本、JSON、CSV、日志和 SQL 转储的流式处理器
- `cloakrs-cli`:`cloakrs` 命令行界面
## 对比
| 工具 | 语言 | 运行时要求 | 主要适用场景 | 基准测试状态 |
| --- | --- | --- | --- | --- |
| cloakrs | Rust | 单一原生二进制文件 | 快速本地扫描与掩码 | 内置 Criterion 测试套件 |
| Microsoft Presidio | Python | Python 加上 NLP 依赖 | NLP 密集型企业工作流 | 可在本地运行以获取相同硬件数据 |
| DataFog | Python | Python 运行时 | 应用层 PII 检测 | 可在本地运行以获取相同硬件数据 |
| scrubadub | Python | Python 运行时 | 文本清洗 | 项目内未进行基准测试 |
| piidetect | Go | 原生二进制文件 | 轻量级 PII 检测 | 项目内未进行基准测试 |
使用以下命令运行本地基准测试套件:
```
cargo bench -p cloakrs-cli --bench scan_benchmark
```
基准测试工具涵盖 1KB 到 10MB 的纯文本、JSON 和 CSV 输入,每个识别器单独测试,以及所有掩码策略。详见 [docs/benchmarking.md](docs/benchmarking.md)。
## 指南
- [添加识别器](docs/adding-recognizers.md)
- [添加区域识别器](docs/locale-guide.md)
- [支持的实体](docs/supported-entities.md)
- [CI/CD 集成](docs/ci-cd-integration.md)
- [基准测试](docs/benchmarking.md)
- [发布清单](docs/release-checklist.md)
## 状态
首个 Rust 版本已在 crates.io 发布。已完成的工作和已知的缺口请参见[实现状态](docs/implementation-status.md)。
## 许可证
MIT。详见 [LICENSE.md](LICENSE.md)。
标签:CSV处理, GDPR合规, JSON处理, meg, PII检测, Rust语言, 个人身份信息, 信息安全, 匿名化, 可视化界面, 合规工具, 安全扫描, 库, 应急响应, 快速引擎, 扫描工具, 敏感数据处理, 数据屏蔽, 数据库转储, 数据泄露防护, 数据脱敏, 文本处理, 文档结构分析, 时序注入, 网络安全, 网络探测, 通知系统, 隐私保护