ShakalBhau0001/Audio-Steganography-GUI-Tool
GitHub: ShakalBhau0001/Audio-Steganography-GUI-Tool
一款基于 Python Tkinter 的教学型音频隐写 GUI 工具,使用 Fernet 加密和 LSB 技术将消息嵌入 WAV 文件。
Stars: 3 | Forks: 0
# 🎵 Audio-Steganography-GUI-Tool 🔐
一款基于 Python 的**音频隐写 GUI 工具**,允许你**加密隐藏消息**并将其嵌入到 **16 位 WAV 音频文件**中,随后可通过密码**提取并解密**。
该项目使用 **Fernet 加密**、**PBKDF2-HMAC 密钥派生**以及 **LSB 音频隐写**,并在 Tkinter GUI 中实现。
## 🧱 项目结构
```
Audio-Steganography-GUI-Tool/
│
├── audio_steganography.py # Main GUI application
└── README.md # Project documentation
```
## ✨ 功能特性
#### 🔐 加密与嵌入
- 使用 **Fernet(AES-128 认证加密)** 加密消息
- 使用 **PBKDF2-HMAC (SHA256)** 从密码派生密钥
- 使用 **LSB(最低有效位)** 将加密的 payload 嵌入 WAV 音频
#### 🔓 提取与解密
- 从 WAV 中提取嵌入的 payload
- 使用存储的 salt 重新生成 Fernet 密钥
- 安全解密消息
- 在 GUI 中显示恢复的消息
#### 🖥 GUI 亮点
- 简洁明了的 **Tkinter 界面**
- 加载 WAV 文件
- 从 `.txt` 加载消息
- 保存隐写音频输出
- 错误处理 + 状态更新
## 🛠 使用的技术
| 技术 | 角色 |
| -------------------------------------- | ------------------------- |
| **Python 3** | 主要语言 |
| **Tkinter** | GUI |
| **wave 模块** | WAV 文件操作 |
| **array 模块** | 音频采样操作 |
| **cryptography (Fernet + PBKDF2HMAC)** | 加密 |
| **LSB 隐写** | 数据嵌入 |
## 📌 环境要求
请确保安装了所需的依赖项:
```
pip install cryptography
```
`wave`、`array`、`tkinter`、`base64` 和 `struct` 等标准库已随 Python 一起包含。
## ▶️ 如何运行
**1. 克隆仓库:**
```
git clone https://github.com/ShakalBhau0001/Audio-Steganography-GUI-Tool.git
```
**2. 进入项目文件夹:**
```
cd Audio-Steganography-GUI-Tool
```
**3. 运行 GUI:**
```
python audio_steganography.py
```
## 📁 支持的文件格式
- **输入(载体):** 仅限 16 位 PCM **WAV**
- **输出(隐写音频):** WAV
- **消息输入:** 文本或 `.txt` 文件
## ⚙️ 工作原理
**1️⃣ 密钥派生**
- 密码 → PBKDF2-HMAC(SHA256, 39万次迭代) → 32字节密钥 → Fernet 密钥
**2️⃣ 加密**
- 消息 → `f.encrypt()` → 加密字节
- 存储内容包含:
- 4字节魔术标头(`AUDS`)
- 16字节 salt
- 4字节加密长度
- 加密的 payload
**3️⃣ 嵌入**
- 将 payload 的比特插入**音频采样的 LSB 中。**
**4️⃣ 提取**
- 读取 LSB 比特
- 重构 payload
- 验证标头
- 重新派生 Fernet 密钥
- 解密消息
## 🌟 未来增强计划
- 增加对更大音频文件的支持
- 在嵌入过程中添加进度条
- 添加消息文件导出选项
- 改进对损坏音频的错误处理
- 增加二进制文件隐藏选项
## 📦 扩展版本
本仓库专注于特定的隐写技术,专为
**学习和实验**而设计。
如需**更高级且综合的实现**(包括支持文件加密的图像和音频隐写),请参考:
🔗 **[StegaVault-GUI](https://github.com/ShakalBhau0001/StegaVault-GUI)**
## ⚠️ 免责声明
本项目仅供**教育和研究目的**使用。
它并非旨在提供现实世界中的安全通信。
单靠隐写术并不能保证机密性。
## 🪪 作者
## ⭐ 支持
如果你喜欢这个项目,请考虑在 GitHub 上给它一个 ⭐!
标签:DNS 反向解析, GUI, Python, 密码学, 手动系统调用, 数据隐藏, 无后门, 逆向工具, 音频隐写