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, 信息安全, 加密工具, 口令加密, 密码学, 密钥派生, 对称加密, 开源项目, 手动系统调用, 数据保护, 文件加密, 文件处理, 新手友好, 无后门, 桌面应用, 编程工具, 网络安全, 自动化审计, 解密工具, 软件开发, 远程代码执行, 隐私保护