ShakalBhau0001/Audio-Steganography-CLI-Tool

GitHub: ShakalBhau0001/Audio-Steganography-CLI-Tool

一款基于 Python 的命令行音频隐写工具,利用 Fernet 加密和 LSB 技术将秘密信息嵌入 16 位 WAV 文件中,实现带密码保护的信息隐藏与提取。

Stars: 3 | Forks: 0

# 🎵 Audio-Steganography-CLI-Tool 🔐 一个基于 Python 的**音频隐写命令行工具**,允许你**加密隐藏信息**并将其嵌入到 **16 位 WAV 音频文件**中,之后可以通过密码**提取和解密**。 此 CLI 工具使用 **Fernet 加密**、**PBKDF2-HMAC 密钥派生**和**基于 LSB 的音频隐写技术**,专为终端用户、脚本编写和自动化而设计。 ## 🧱 项目结构 ``` Audio-Steganography-CLI-Tool/ │ ├── assets/ # Screenshots ├── main.py # Basic CLI Version ├── interactive.py # Rich-powered CLI ├── requirements.txt # Dependencies └── README.md # Project documentation ``` ## ✨ 功能 ### 🔐 加密与嵌入 - 使用 **Fernet (AES-128 认证加密)** 加密信息 - 使用 **PBKDF2-HMAC (SHA256)** 从密码派生密钥 - 使用 **LSB (最低有效位)** 将加密的 payload 嵌入 WAV 音频 ### 🔓 提取与解密 - 从 WAV 中提取嵌入的 payload - 使用存储的 salt 重新生成 Fernet 密钥 - 安全解密信息 - 直接在终端打印解密后的信息 ### 🎨 Rich CLI(交互模式) - 使用 Rich 实现精美的彩色终端 UI - 以结构化表格显示密钥矩阵 - 带有验证的交互式提示 - 干净且易读的输出面板 ### ⚡ 双模式支持 - 🧼 基础 CLI → 轻量级,无依赖 - 🎨 Rich CLI → 具有颜色和面板的增强型 UI ## 🛠 使用的技术 | 技术 | 角色 | | -------------------------------------- | ------------------------- | | **Python 3** | 主要语言 | | **argparse** | CLI 参数解析 | | **wave 模块** | WAV 文件操作 | | **array 模块** | 音频样本操作 | | **cryptography (Fernet + PBKDF2HMAC)** | 加密 | | **LSB 隐写** | 数据嵌入 | | **Rich** | 带样式的 CLI、颜色、面板 | ## ▶️ 如何运行 ### 1️⃣ 克隆仓库 ``` git clone https://github.com/ShakalBhau0001/Audio-Steganography-CLI-Tool.git ``` ### 2️⃣ 导航到项目文件夹 ``` cd Audio-Steganography-CLI-Tool ``` ### 3️⃣ 安装依赖 ``` pip install rich cryptography ``` **或者** ``` pip install -r requirements.txt ``` ### 3️⃣ 运行项目 #### 🧼 基础 CLI 版本 ``` python main.py ``` #### 🎨 Rich 交互版本 ``` python interactive.py ``` ## ▶️ 用法 ### 🔐 加密与嵌入 #### 1. 文本加密与嵌入 ``` python main.py encrypt --in-wav inputfile.wav --out-wav outputfile.wav --password yourpassword --message "Enter Your Secret Message" ``` ``` python main.py encrypt --in-wav cover.wav --out-wav stego.wav --password mypass --message "secret" ``` #### 2. 文本文件加密与嵌入 ``` python main.py encrypt --in-wav inputfile.wav --out-wav outputfile.wav --password yourpassword --message-file Add Your Secret txt file ``` ``` python main.py encrypt --in-wav cover.wav --out-wav stego.wav --password mypass --message-file secret.txt ``` ### 🔓 解密与提取 ``` python main.py decrypt --in-wav outputfile.wav --password yourpassword ``` ``` python main.py decrypt --in-wav stego.wav --password mypass ``` ## 📁 支持的格式 - **输入(载体):** 仅限 16 位 PCM **WAV** - **输出(隐写音频):** WAV - **信息输入:** 文本或 `.txt` 文件 ## ⚙️ 工作原理 **1️⃣ 密钥派生** - 密码 → PBKDF2-HMAC(SHA256, 39 万次迭代) → 32 字节密钥 → Fernet 密钥 **2️⃣ 加密** - 使用 Fernet 加密信息 - Payload 格式: [AUDS][16字节 salt][4字节长度][加密数据] **3️⃣ 嵌入** - 将 payload 的比特位插入到**音频样本的 LSB 中。** **4️⃣ 提取** - 读取 LSB 比特位 - 重建 payload - 验证标头 - 重新派生 Fernet 密钥 - 解密信息 ## ⚠️ 常见错误 - **密码错误** → 解密失败 - **非 16 位 WAV** → 被拒绝 - **音频文件过小** → Payload 过大 - **错误的 WAV 文件** → 未找到 MAGIC 标头 ## 🌟 未来增强功能 - 增加对更大音频文件的支持 - 在嵌入过程中添加进度条 - 添加信息文件导出选项 - 改进对损坏音频的错误处理 - 增加二进制文件隐藏选项 ## 📦 扩展版本 此仓库专注于作为**命令行 (CLI) 学习项目**实现的**特定隐写技术**。 该项目的目标是: - 从实践层面理解隐写术的工作原理 - 试验数据隐藏技术 - 了解基于 CLI 的安全工具的结构 有关**更高级的综合实现**,包括: - 图像隐写 - 音频隐写 - 文件加密支持 请参考: 🔗 **[StegaVault-CLI](https://github.com/ShakalBhau0001/StegaVault-CLI)** ## ⚠️ 免责声明 本项目仅供**教育和研究目的**使用。 它**并非为现实世界的安全通信而设计**。 仅靠隐写术并不能保证保密性,不应将其视为 proper 密码学安全性的替代方案。 ## 📸 预览 ### 1. **加密** ![Rich CLI 预览](https://static.pigsec.cn/wp-content/uploads/repos/cas/42/4254c93b51aee1d41cceca66f2e83d973b00f9c4f3ee25809e0a34c128207bc1.png) ### 2. **解密** ![Rich CLI 预览](https://static.pigsec.cn/wp-content/uploads/repos/cas/de/dea8c8cb6c6cef2419326c0d8fb39b3b7e4b22fea5ddf14958131c9e32c878b6.png) ### 3. **信息** ![Rich CLI 预览](https://static.pigsec.cn/wp-content/uploads/repos/cas/56/56f60b56cfede9900c4806f6a2b2a299d5c43cd38e5a87478ccd2ab401e929fb.png) ### 4. **退出** ![Rich CLI 预览](https://static.pigsec.cn/wp-content/uploads/repos/cas/d7/d7ea11231c5d858e7b6bf61e02c867648094fb2cc192d411901bdb0b54c29634.png) ## 🪪 作者 ## ⭐ 支持 如果你喜欢这个项目,请考虑在 GitHub 上给它一个 ⭐!
标签:API接口, DNS 反向解析, Python, 密码学, 手动系统调用, 数据加密, 无后门, 逆向工具, 音频隐写