ShakalBhau0001/File-Encryption-GUI-Tool

GitHub: ShakalBhau0001/File-Encryption-GUI-Tool

一个基于 Python 和 Tkinter 的图形化文件加密解密工具,使用 Fernet 对称加密和 PBKDF2 密钥派生,帮助初学者直观理解密码保护文件的基本流程。

Stars: 3 | Forks: 0

# 🔐 File-Encryption-GUI-Tool 一个基于 Python 的**文件加密**工具,允许用户使用密码**安全地加密任何文件**,并随后**将其解密回原始格式**。 本项目使用 **Fernet 对称加密**、**PBKDF2-HMAC 密钥派生**以及简洁的 **基于 Tkinter 的图形界面**,使其简单、安全且对初学者友好。 ## 🧱 项目结构 ``` File-Encryption-GUI-Tool/ │ ├── file_encryption.py # Main GUI application └── README.md # Project documentation ``` ## ✨ 功能特性 ## 🔐 文件加密 - 加密**任何文件类型**(视频、图像、音频、文档等) - 使用 **Fernet(AES-128 认证加密)** - 使用 **PBKDF2-HMAC(SHA256,390,000 次迭代)** 进行基于密码的密钥派生 - 生成带有 `.enc` 扩展名的安全加密文件 - 使用 **MAGIC 文件头**安全地存储元数据 ## 🔓 文件解密 - 将 `.enc` 加密文件解密回原始格式 - 恢复**原始文件名和内容** - 检测无效或损坏的加密文件 - 防止错误密码的使用 ## 🖥 GUI 亮点 - 简洁干净的 **Tkinter 界面** - **加密和解密**独立分区 - 提供文件浏览器支持,方便选择文件 - 密码保护的操作 - 完善的成功与错误提示对话框 - **支持所有文件格式** ## 🛠 使用的技术 | 技术 | 作用 | | -------------------------------- | -------------------- | | **Python 3** | 核心语言 | | **Tkinter** | GUI 框架 | | **cryptography (Fernet + PBKDF2HMAC)** | 加密与密钥派生 | | **secrets** | 安全盐值生成 | | **base64 / os** | 二进制与文件处理 | ## 📌 环境要求 请确保安装了所需的依赖: ``` pip install cryptography ``` `secrets`、`tkinter`、`base64` 和 `struct` 等标准库已随 Python 自带。 ## ▶️ 如何运行 **1. 克隆仓库:** ``` git clone https://github.com/ShakalBhau0001/File-Encryption-GUI-Tool.git ``` **2. 进入项目文件夹:** ``` cd File-Encryption-GUI-Tool ``` **3. 运行 GUI:** ``` python file_encryption.py ``` ## 📁 支持的文件格式 - **输入:** 任何文件类型 - **加密输出:** `.enc` - **解密输出:** 恢复的原始文件格式 ## ⚙️ 工作原理 **1️⃣ 密钥派生** - 密码 → PBKDF2-HMAC(SHA256,390,000 次迭代) → 32 字节密钥 → Fernet 密钥 **2️⃣ 加密** - 使用 Fernet 加密文件数据 - 加密文件结构: [FILE][16 字节盐值][文件名长度][原始文件名][加密数据] **3️⃣ 解密** - 验证 MAGIC 文件头 - 提取盐值与文件名 - 重新派生加密密钥 - 将文件解密回原始格式 ## ⚠️ 常见错误 - **密码错误** → 解密失败 - **无效文件** → 缺少 MAGIC 文件头 - **文件损坏** → 解密错误 - **重命名的 `.enc` 文件** → 仍然有效(元数据存储在内部) ## 🌟 未来增强 - 拖放文件支持 - 文件夹加密 - 图像容量计算器 - 大文件进度条 - 深色模式 UI ## 📦 扩展版本 本仓库专注于特定的隐写术技术,**专为学习和实验而设计**。 如需包含图像和音频隐写术以及文件加密支持的**更高级、组合的实现**,请参考: 🔗 **[StegaVault-GUI](https://github.com/ShakalBhau0001/StegaVault-GUI)** ## ⚠️ 免责声明 本项目仅用于**教育和研究目的**。 它并非为现实世界中的安全文件通信而设计。 ## 🪪 作者 ## ⭐ 支持 如果您喜欢这个项目,请考虑在 GitHub 上给它一个 ⭐!
标签:AES-128, Cryptography库, DNS 反向解析, DNS解析, Fernet, GUI, meg, PBKDF2-HMAC, ProjectDiscovery, Python, Tkinter, 信息安全, 加密工具, 口令加密, 密码学, 密钥派生, 对称加密, 开源项目, 手动系统调用, 数据保护, 文件加密, 文件处理, 新手友好, 无后门, 桌面应用, 编程工具, 网络安全, 自动化审计, 解密工具, 软件开发, 远程代码执行, 隐私保护