# Boolean-Encryptor **Repository Path**: YuYao-Gith/Boolean-Encryptor ## Basic Information - **Project Name**: Boolean-Encryptor - **Description**: No description available - **Primary Language**: C++ - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-06-23 - **Last Updated**: 2026-08-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Boolean Encryptor **Boolean Encryptor** 是一个基于 C++/Qt/OpenSSL 的超多层文件加密工具。 它支持最多 **2,147,483,647 层**交替加密,能够处理 **>100 GB** 的单文件,并提供实时进度、时间预估及中英双语界面。 --- ## ✨ 特性 - 🔐 **107 种加密算法**:覆盖 AES / Camellia / ARIA / Blowfish / CAST5 / RC2 / RC5 / SEED / SM4 / 3DES / DESX / IDEA / ChaCha20 等 13 个密码系列(含 AES-XTS),随机选择 4 种交替应用于每一层(可在隐藏界面中手动指定 2~107 种,运行时自动检测 OpenSSL 可用性)。 - 🧅 **超多层加密**:理论最大层数 2,147,483,647;层数 ≥256 时强制警告。 - 📂 **大文件支持**:流式处理,内存占用恒定(≈1 MB),临时磁盘占用约等于文件大小。 - ⏱️ **实时进度与预估**:基于基准测试预估总耗时;运行中实时显示当前层数、当前算法、**实际速度(MB/s)**、已用时间与**剩余时间(ETA)**。 - 🌐 **中英文切换**:一键切换界面语言,翻译内置无外部依赖。 - 💻 **跨平台**:Linux、Windows、macOS 均可编译运行。 - 🔑 **密钥派生**:PBKDF2‑SHA256(新格式 1,000,000 次迭代)由用户密码生成主密钥,每层独立派生 Key + IV。 - 🛡️ **认证加密**:encrypt‑then‑MAC(HMAC‑SHA256),解密前先验证完整性——文件被篡改或密码错误立即报错,不产生任何垃圾输出。 - 📋 **自定义文件头**:加密文件头部可写入用户自定义明文前缀,格式为 ` + <自定义头部> + `;解密自动识别,旧版无前缀文件完全兼容。 - 👁️ **密码显隐切换**:一键切换密码明文/密文显示。 - 🛡️ **密码强度提示**:实时显示密码强度(弱 / 中 / 强)。 - 📂 **拖放支持**:支持从文件管理器拖拽文件到输入/输出路径。 - 🎨 **深色 / 浅色主题**:一键切换;主题、语言、窗口大小、上次路径等设置自动记忆。 - ⏹️ **取消操作**:加密/解密过程中可随时取消,自动清理临时文件与半成品输出。 - 🔍 **加密文件识别**:选择输入文件后自动识别文件头(层数、算法数量)并显示文件大小。 - 💾 **磁盘空间检查**:开始前检查输出磁盘剩余空间,不足时提前警告。 --- ## 📦 依赖 | 组件 | 版本要求 | |--------|-------------------| | Qt | 5.15+ 或 6.x(Widgets 模块) | | OpenSSL| 1.1.1+ 或 3.x | | CMake | ≥ 3.16 | | 编译器 | 支持 C++17(gcc / clang / MSVC) | --- ## 🖥️ 各平台依赖安装与编译 > **快速开始**:推荐使用项目自带的构建脚本,自动检测 OS 并交互式安装依赖。 ### 🐧 Linux / 🍎 macOS ```bash chmod +x build.sh ./build.sh ``` 脚本自动完成:OS 检测(apt/dnf/pacman/zypper/brew)→ 依赖检查 → 交互式安装 → Release/Debug 选择 → 编译 → 运行询问。 #### 手动编译(可选) ```bash # Debian / Ubuntu sudo apt update && sudo apt install build-essential cmake qt6-base-dev libssl-dev # Fedora sudo dnf install cmake gcc-c++ qt6-qtbase-devel openssl-devel # Arch Linux sudo pacman -S cmake gcc qt6-base openssl # openSUSE sudo zypper install cmake gcc-c++ qt6-qtbase-devel libopenssl-devel # macOS brew install qt@6 openssl cmake cd BooleanEncryptor mkdir build && cd build cmake .. make -j$(nproc) ./BooleanEncryptor ``` ### 🪟 Windows 推荐在 **MSYS2 UCRT64** 终端中运行构建脚本: ```bash ./build.bat ``` 脚本自动检测 MSYS2 / PowerShell / CMD 环境,引导安装缺失依赖。 #### 手动编译(可选) **方式一:MSYS2 (UCRT64)** ```bash pacman -Sy mingw-w64-ucrt-x86_64-{cmake,gcc,qt6-base,openssl} git cd BooleanEncryptor mkdir build && cd build cmake -G "MinGW Makefiles" .. mingw32-make -j$(nproc) ./BooleanEncryptor.exe ``` **方式二:Visual Studio (MSVC)** ```powershell # 在 Developer Command Prompt 中 cmake -B build -DCMAKE_PREFIX_PATH="C:/Qt/6.5.0/msvc2019_64" -DOPENSSL_ROOT_DIR="C:/vcpkg/installed/x64-windows" cmake --build build --config Release ``` --- ## 🚀 使用说明 1. 运行 `BooleanEncryptor` 2. 点击 **Browse...** 选择输入文件和输出文件路径(支持拖拽) 3. 输入 **加密层数**(≥1) 4. 输入 **密码**(可点击"显示"按钮切换明文) 5. (可选)输入 **自定义头部**:一段明文前缀,将原样写入加密文件头部(` + <自定义头部> + `),可用于文件标识或伪装 6. 点击 **Encrypt** 开始加密,或 **Decrypt** 解密已加密文件 - 解密时层数、算法组合等参数自动从文件头读取,自定义头部自动跳过并显示 - 选择输入文件后,输出路径为空时自动填充 `<输入文件>.enc` - 加密/解密过程中可点击 **Cancel** 随时取消 7. 右上角 **🌙/☀️ 主题** 与 **EN/中文** 按钮可切换主题与界面语言 ### 高级功能 - **自定义算法**:通过菜单 **帮助 → 加密算法设置**,或双击界面右下角的 **v1.5** 标签,打开算法选择对话框,可手动选择 2~107 种交替使用的加密算法。 - **关于对话框**:单击右下角 **v1.5** 标签,或通过菜单 **帮助 → 关于** 查看。 - **⚠️ 大量层数警告**:若设置层数 ≥256,程序会弹出警告并要求确认。 --- ## 📁 文件格式 新格式加密文件结构(v1.5 起,旧版文件无 `` 前缀,完全兼容解密): ``` [Boolean (7B)] [UserHeaderLen (4B, LE)] [UserHeader (n)] [Magic (4B)] [Version (1B)] [Layers (4B)] [Salt (16B)] [AlgoCount (1B)] [Algo1Len (1B)][Algo1Name (n)] [Algo2Len (1B)][Algo2Name (n)] [Algo3Len (1B)][Algo3Name (n)] [Algo4Len (1B)][Algo4Name (n)] [Encrypted Data ...] [HMAC-SHA256 (32B)] ``` - **Boolean**:固定 7 字节 ASCII `Boolean`,用于标记新格式 - **UserHeaderLen / UserHeader**:用户自定义明文头部(长度小端序,上限 1 MB) - **Magic**:`0x51454E43` (即 ASCII 中的 `QENC`) - **Version**:`1`(旧格式,600,000 次 PBKDF2 迭代、无认证)或 `2`(新格式,1,000,000 次迭代 + HMAC 认证) - **Layers**:有符号 32 位整数(小端序) - **Salt**:16 字节随机盐值 - **AlgoCount**:1 字节,表示算法数量(2~255) - **算法名称**:每个算法名前面带 1 字节长度 - **HMAC-SHA256**:对密文数据的认证码(encrypt-then-MAC),解密前先验证 解密时自动校验魔数、版本号及算法列表,新格式文件先跳过 `Boolean` 前缀与自定义头部;若文件以 `QENC` 头直接开头(旧版格式)则按经典路径解密,确保数据完整性。 --- ## 🔐 可用加密算法(95 种) | 系列 | 算法 | |------|------| | AES | aes-128/192/256-cbc, cfb, cfb1, cfb8, ofb, ctr, ecb, **xts** | | Camellia | camellia-128/192/256-cbc, cfb, cfb1, cfb8, ofb, ctr, ecb | | ARIA | aria-128/192/256-cbc, cfb, cfb1, cfb8, ofb, ctr, ecb | | 3DES | des-ede3-cbc, ecb, cfb, cfb1, cfb8, ofb;des-ede-cbc, ecb, cfb, ofb, cfb1, cfb8(2-key) | | DESX | desx-cbc | | Blowfish | bf-cbc, ecb, cfb, ofb | | CAST5 | cast5-cbc, ecb, cfb, ofb | | RC2 | rc2-cbc, ecb, cfb, ofb, 40-cbc, 64-cbc | | RC5 | rc5-cbc, ecb, cfb, ofb | | SEED | seed-cbc, ecb, cfb, ofb | | SM4 | sm4-cbc, ecb, cfb, ofb, ctr | | IDEA | idea-cbc | | ChaCha20 | chacha20 | > 覆盖 13 个密码系列,每层交替使用选中的全部算法(`layer % N`),每个算法通过 `EVP_get_cipherbyname()` 运行时检测可用性。Blowfish / CAST5 / RC2 / RC5 / SEED / DESX / 2-key 3DES 等来自 OpenSSL legacy provider,程序启动时自动加载(构建缺少 legacy provider 时这些算法自动从列表消失)。 --- ## 🧪 测试建议 - **小文件验证**:先用 1–10 层加密一个文本文件,对比解密后内容确保一致。 - **大文件性能**:可使用以下命令生成测试文件: ```bash # Linux / macOS dd if=/dev/zero of=test.bin bs=1M count=10240 # 10 GB # Windows (PowerShell) fsutil file createnew test.bin 10737418240 # 10 GB ``` - **磁盘占用**:加密过程中会在输出目录创建 `.tmp1` 和 `.tmp2` 临时文件,总占用约等于原文件大小,完成后自动删除。 --- ## 🛡️ 安全说明 - 密码强度直接影响加密安全性,建议使用长随机密码(如密码管理器生成)。 - 算法组合存储在文件头中,无需在解密时再次指定;但若文件头损坏将无法解密。 - PBKDF2 迭代次数为 **600,000**(OWASP 2023 推荐)。 - 本工具未经专业安全审计,请勿用于需要高度保密的生产环境。 --- ## 🗃️ 项目结构 ``` BooleanEncryptor/ ├── CMakeLists.txt ├── main.cpp ├── translator.h / translator.cpp # 内置中英双语翻译 ├── mainwindow.h / mainwindow.cpp # 主界面逻辑 ├── worker.h / worker.cpp # 加密解密核心实现 ├── algorithmdialog.h / algorithmdialog.cpp # 高级算法选择对话框 ├── CHANGELOG.md # 更新日志 └── README.md # 本文件 ``` --- ## 📄 许可证 本项目采用 **GNU General Public License v3.0 (GPLv3)** 许可。 详见 [LICENSE](LICENSE) 文件,或访问 [https://www.gnu.org/licenses/gpl-3.0.html](https://www.gnu.org/licenses/gpl-3.0.html)。 版权 © 2026 --- ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! 联系邮箱:asdf2502@126.com Gitee:https://gitee.com/YuYao-Gith --- ## 技术支持 DeepSeek-V4 Pro/Flash大模型 Codewhale终端AI工具 再次一并致以最诚挚的谢意! ## 其他 感谢便宜的DeepSeek API! 截止至v1.3版本,作者共花费tokens:23635755! CNY:3.55! 真诚感谢杭州深度求索人工智能基础技术研究有限公司以及梁圣的大恩大德!没有你们就没有这个项目! --- **Enjoy paranoid‑level encryption!**