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, 密码学, 手动系统调用, 数据隐藏, 无后门, 逆向工具, 音频隐写