kadir/cloakrs

GitHub: kadir/cloakrs

cloakrs 是一个用 Rust 编写的高效工具,用于检测和掩码文本、日志等多种格式中的个人身份信息以增强数据安全。

Stars: 43 | Forks: 1

# cloakrs [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/36cf7cc0b6043900.svg)](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语言, 个人身份信息, 信息安全, 匿名化, 可视化界面, 合规工具, 安全扫描, 库, 应急响应, 快速引擎, 扫描工具, 敏感数据处理, 数据屏蔽, 数据库转储, 数据泄露防护, 数据脱敏, 文本处理, 文档结构分析, 时序注入, 网络安全, 网络探测, 通知系统, 隐私保护