# PrivacyCheckGo **Repository Path**: zuoqiangHuang/PrivacyCheckGo ## Basic Information - **Project Name**: PrivacyCheckGo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-13 - **Last Updated**: 2025-08-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PrivacyCheckGo 高性能静态代码敏感信息检测工具,完全兼容HAE规则格式。 ## 项目简介 PrivacyCheckGo 是一个高性能的静态代码审计工具,专门用于从源代码、网页源码、小程序源码等文本文件中提取敏感信息和隐私数据。本项目完全兼容HAE(HaE - Highlighter and Extractor)规则格式,并在性能和功能上进行了全面优化。 ## 主要特性 ### 🚀 **高性能** - **多线程并发扫描**:充分利用多核CPU,显著提升扫描速度 - **内存优化**:支持大文件分块处理,降低内存占用 - **智能缓存**:支持断点续扫,避免重复分析大型项目 - **跨平台支持**:原生支持Windows和Linux平台 ### 🔍 **强大的检测能力** - **兼容HAE规则**:直接复用现有HAE规则,无需转换 - **多种敏感信息检测**: - 个人信息:邮箱、身份证号、手机号等 - 系统信息:内网IP、MAC地址、文件路径等 - 敏感信息:API密钥、密码字段、云服务密钥等 - **灵活的规则过滤**:支持按规则组、规则名称、敏感级别过滤 - **智能编码检测**:自动识别文件编码(UTF-8、GBK、GB2312等) - **忽略大小写匹配**:默认忽略大小写的正则匹配,提升检测效果 ### 📊 **丰富的输出选项** - **多种输出格式**:支持JSON和CSV格式 - **灵活的结果分组**:可按规则组分别输出到不同文件 - **自定义输出字段**:仅输出需要的字段 - **结果过滤**:支持黑名单关键字过滤 - **格式化选项**:自动清理结果中的特殊字符 ### ⚙️ **易于使用** - **智能配置管理**:配置文件不存在时自动生成默认配置 - **实时进度显示**:扫描过程中实时显示进度和预计剩余时间 - **详细日志记录**:支持多级别日志和文件输出 ## 快速开始 ### 编译要求 - Go 1.20+(已测试兼容Go 1.20) - 无CGO依赖,支持交叉编译 ### 安装 #### 方式一:下载预编译二进制文件 从[Releases页面](../../releases)下载对应平台的二进制文件: - Windows x64: `privacycheck-windows-x64.exe` - Linux x64: `privacycheck-linux-x64` #### 方式二:从源码编译 ```bash # 克隆项目 git clone https://github.com/winezer0/PrivacyCheckGo.git cd PrivacyCheckGo # Windows用户 build.bat # Linux用户 ./build.sh ``` ## 命令行参数 ### 基础参数 - `-p, --project-path`: 待扫描的目标文件或目录(必需) - `-r, --rules`: 规则文件路径(默认:config.yaml) - `-n, --project-name`: 项目名称,影响输出文件名和缓存文件名 ### 性能参数 - `-w, --workers`: 工作线程数量(默认:8) - `--ls`: 文件大小限制,单位MB(默认:5,0表示无限制) - `--lc`: 分块读取阈值,单位MB(默认:5,0表示禁用) - `-s, --save-cache`: 启用缓存功能 ### 过滤参数 - `--ee`: 排除的文件扩展名列表 - `--ep`: 排除的路径关键字列表 - `-S, --sensitive-only`: 仅检测敏感信息 - `-N, --filter-names`: 按规则名称过滤 - `-G, --filter-groups`: 按规则组过滤 ### 输出参数 - `-o, --output-file`: 输出文件路径 - `-f, --output-format`: 输出格式(json/csv,默认:json) - `-g, --output-group`: 按规则组分别输出 - `-O, --output-keys`: 指定输出字段 - `-F, --format-results`: 格式化输出结果(默认:启用) - `-b, --block-matches`: 黑名单关键字过滤 ### 日志参数 - `--ll`: 日志级别(debug/info/warn/error,默认:info) - `--lf`: 日志文件路径 - `--cf`: 控制台日志格式(默认:TLM) ### 工具参数 - `-h, --help`: 显示帮助信息 ## 配置文件格式 PrivacyCheckGo 完全兼容HAE规则格式。 配置文件示例: ```yaml rules: - group: Sensitive Information rule: - name: Cloud Key loaded: true f_regex: (((access)(|-|_)(key)(|-|_)(id|secret))|(LTAI[a-z0-9]{12,20})) sensitive: true context_left: 50 context_right: 50 ``` ### 规则参数说明 - `name`: 规则名称(必需) - `f_regex`: 正则表达式模式(必需) - `sensitive`: 是否为敏感信息(默认:false) - `loaded`: 是否启用规则(默认:true) - `context_left`: 向左扩展的上下文字符数 - `context_right`: 向右扩展的上下文字符数 ### 重要说明 - **忽略大小写匹配**:所有正则表达式模式默认忽略大小写匹配 - **上下文提取**:当 context_left/right > 0 时,工具会提取周围上下文以便更好地分析 - **规则分组**:规则按组织分组,便于管理和输出组织 ## 使用示例 ### 基础扫描 ```bash # 扫描当前目录 ./privacycheck -p . # 扫描指定项目,启用缓存 ./privacycheck -p /path/to/large-project -s -n my-project ``` ### 智能内存管理 PrivacyCheckGo 支持智能分块读取功能,可以有效控制内存使用: #### 工作原理 - **自动切换**:根据文件大小自动选择读取策略 - **分块处理**:大文件按1MB块进行处理,保持低内存占用 - **行完整性**:确保不会在行中间截断,保持匹配准确性 - **位置精确**:正确计算每个匹配结果的文件位置和行号 #### 配置选项 ```bash # 默认配置(5MB阈值) ./privacycheck -p /path/to/project # 自定义阈值(10MB) ./privacycheck -p /path/to/project --lc 10 # 禁用分块读取(全量读取) ./privacycheck -p /path/to/project --lc 0 ``` #### 使用建议 - **内存受限环境**:设置较小阈值(1-2MB) - **高性能环境**:设置较大阈值(10-20MB)或禁用分块读取 - **默认配置**:5MB阈值适合大多数场景 - **大文件项目**:启用分块读取可显著降低内存占用 ## 技术架构 ### 核心组件 1. **规则系统(baserule)**:HAE兼容的规则加载、验证和过滤 2. **扫描引擎(scanner)**:多线程扫描调度、规则匹配和结果收集 - **优化的文件处理**:直接处理文件路径,无预转换开销 - **延迟编码检测**:仅在实际读取文件时才进行编码检测 - **智能缓存**:智能缓存管理,支持断点续扫 3. **文件处理(fileutils)**:文件发现、编码检测、分块读取 4. **输出处理(output)**:结果格式化、过滤和多格式输出 5. **日志系统(logging)**:结构化日志记录和多级别输出 ## 性能对比 与Python版本相比,Go版本在以下方面有显著提升: | 特性 | Python版本 | Go版本 | 提升 | |------|------------|--------|------| | 启动速度 | ~2秒 | ~0.1秒 | 20x | | 内存占用 | 高 | 低 | 50%+ | | 扫描速度 | 基准 | 3-5x | 3-5x | | 并发性能 | GIL限制 | 真并发 | 显著 | | 部署便利性 | 需要Python环境 | 单文件部署 | 极大提升 | | 文件处理 | 预转换开销 | 直接处理 | 更快启动 | | 正则匹配 | 默认区分大小写 | 默认忽略大小写 | 更好检测 | ## 贡献指南 欢迎提交Issue和Pull Request! ## 免责声明 本工具仅用于合法的安全测试和代码审计目的。使用者应当遵守相关法律法规,不得将本工具用于非法用途。开发者不承担因误用本工具而产生的任何责任。