# ZeroRemEcrypt **Repository Path**: byusistudio/zeroremecrypt ## Basic Information - **Project Name**: ZeroRemEcrypt - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-01 - **Last Updated**: 2025-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ZeroRemEcrypt **版权所有 © ByUsi** **项目维护者**: [ByUsi](https://gitee.com/byusi) ## 项目概述 ZeroRemEcrypt 是一个基于 Java 开发的轻量级文件加密/解密工具,采用独特的零字节移除加密算法。该工具通过移除文件中的零字节并记录其位置信息实现加密,解密时通过元数据精确恢复原始文件。 ## 核心功能 - 🔒 **智能零字节加密** - 移除文件所有零字节(`0x00`) - 生成紧凑数据文件(`q0jm.qz`)和元数据文件(`zre.json`) - 自动打包为标准ZIP格式 - 🔓 **精准零字节恢复** - 解析ZIP包中的加密数据 - 根据元数据还原零字节位置 - 100%恢复原始文件结构 - 📊 **透明化处理过程** - 实时显示文件大小变化 - 详细记录零字节操作数量 - 多级日志输出(DEBUG/INFO/ERROR) ## 使用指南 ### 环境要求 - Java 8 或更高版本 - 依赖库: - Jackson Databind (JSON处理) - Log4j 2.x (日志系统) ### 命令行参数 ```bash # 加密模式 (-j) java -jar q0jm.jar -j <目标文件> # 解密模式 (-m) java -jar q0jm.jar -m ``` ### 使用示例 1. **加密文档**: ```bash java -jar q0jm.jar -j confidential.doc ``` 生成 `confidential.doc.zip` 包含加密数据 2. **解密恢复**: ```bash java -jar q0jm.jar -m confidential.doc.zip ``` 还原出原始 `confidential.doc` ## 技术实现 ### 加密流程 ```mermaid graph TD A[原始文件] --> B[零字节扫描] B --> C{是否零字节?} C -->|是| D[记录位置到zre.json] C -->|否| E[写入q0jm.qz] D --> F[打包ZIP] E --> F ``` ### 解密流程 ```mermaid graph TD G[ZIP文件] --> H[解压q0jm.qz] G --> I[解析zre.json] H --> J[重建字节流] I --> K[获取零字节位置] J --> L{当前位置需填充0?} K --> L L -->|是| M[插入0x00] L -->|否| N[读取有效字节] M --> O[输出文件] N --> O ``` ## 性能特征 | 指标 | 加密过程 | 解密过程 | |----------------|---------|---------| | 时间复杂度 | O(n) | O(n+m) | | 空间复杂度 | O(n) | O(n+m) | | 零字节处理效率 | 98%+ | 100% | > n=文件总字节数, m=零字节数量 ## 注意事项 1. **文件完整性验证** - 加密后的ZIP包包含数字签名头(`q0jm`) - JSON元数据采用严格类型校验 2. **异常处理机制** - 文件未找到检测 - 数据长度校验 - 无效模式提示 3. **使用限制** - 最大支持2GB文件处理 - 不支持递归目录操作 - 要求文件系统支持ZIP标准