ShakalBhau0001/Image-Steganography-CLI-Tool

GitHub: ShakalBhau0001/Image-Steganography-CLI-Tool

一个基于 Python 的命令行图像隐写术工具,使用 Fernet 加密和 LSB 技术将机密信息隐藏到 PNG 图片中并支持密码提取。

Stars: 3 | Forks: 0

# 📸 Image-Steganography-CLI-Tool 🔐 一个基于 Python 的 **图像隐写术命令行工具**,允许您 使用 **LSB 隐写术** 加密机密信息并将其嵌入到 **图像 (PNG)** 中,随后通过密码安全地 **提取和解密**。 此 CLI 工具专为 **终端用户**、**自动化** 以及 **专注于安全的实验** 而构建,将 **强加密与隐形数据隐藏** 结合在一起。 ## 🧱 项目结构 ``` Image-Steganography-CLI-Tool/ │ ├── assets/ # Screenshots ├── main.py # Basic CLI application ├── interactive.py # Rich CLI Version ├── requirements.txt # Project Dependancies └── README.md # Project documentation ``` ## ✨ 功能 ### 🔐 加密与嵌入 - 使用 **Fernet (AES-128 加密)** 加密信息 - 使用 **PBKDF2-HMAC (SHA256)** 从密码派生密钥 - 使用 **LSB (最低有效位)** 将加密的 payload 嵌入 WAV 音频中 - 支持: - 直接文本输入 - 来自文件的信息 ### 🔓 提取与解密 - 从 WAV 中提取嵌入的 payload - 使用存储的 salt 重新生成 Fernet 密钥 - 安全地解密信息 - 将解密后的信息输出到: - 终端或 - 文件 ### 🎨 Rich CLI 界面 - 彩色终端输出 - 结构化的密钥显示表格 - 用于编码/解码结果的样式化面板 - 更好的用户体验和可读性 ### ⚡ 双模式支持 - 🧼 基础 CLI → 轻量级,无依赖 - 🎨 Rich CLI → 带有颜色和面板的增强型 UI ## 🛠 使用的技术 | 技术 | 用途 | | -------------------------------------- | ------------------------------- | | **Python 3** | 核心语言 | | **argparse** | CLI 参数解析 | | **Pillow (PIL)** | 图像处理 | | **cryptography (Fernet + PBKDF2HMAC)** | 安全加密 | | **LSB Steganography** | 数据隐藏技术 | | **struct / secrets / base64** | Payload 及加密辅助工具 | | **Rich** | 交互式 CLI 界面 | ## 📌 要求 请确保您安装了所需的依赖项: ``` pip install cryptography pillow rich ``` ## ▶️ 如何运行 ## 1️⃣ 克隆仓库 ``` git clone https://github.com/ShakalBhau0001/Image-Steganography-CLI-Tool.git ``` ## 2️⃣ 进入项目目录 ``` cd Image-Steganography-CLI-Tool ``` ### 3️⃣ 安装依赖项 ``` pip install rich cryptography pillow ``` **或者** ``` pip install -r requirements.txt ``` ### 4️⃣ 运行项目 #### 基础 CLI 版本 ``` python main.py ``` #### Rich 交互式版本 ``` python interactive.py ``` ## ▶️ 用法 ### 🔐 加密与嵌入 #### 1. 文本加密与嵌入 ``` python main.py encrypt --in-image cover.png --out-image stego.png --password mypass --message "secret" ``` ``` python main.py encrypt --in-image inputfile.png --out-image outputfile.png --password yourpassword --message "Enter Your Secret Message" ``` #### 2. 文本文件加密与嵌入 ``` python main.py encrypt --in-image cover.png --out-image stego.png --password mypass --message-file secret.txt ``` ``` python main.py encrypt --in-image inputfile.png --out-image outputfile.png --password yourpassword --message-file Add Your Secret txt file ``` ### 🔓 解密与提取 #### 1. 文本解密与提取 ``` python main.py decrypt --in-image stego.png --password mypass ``` ``` python main.py decrypt --in-image outputfile.png --password yourpassword ``` #### 2. 文本文件解密与提取 ``` python main.py decrypt --in-image stego.png --password mypass123 --out-file output.txt ``` ``` python main.py decrypt --in-image outputfile.png --password yourpassword --out-file filename.txt ``` ## 📁 支持的格式 - **输入图像:** PNG / RGB 或 RGBA 图像 - **输出图像:** PNG (RGBA) - **信息类型:** - UTF-8 文本 - 二进制文件(通过 `--message-file`) ## ⚙️ 工作原理 **1️⃣ 密钥派生** - 密码 → PBKDF2-HMAC(SHA256, 390k 次迭代) → 32 字节密钥 → Fernet 密钥 **2️⃣ 加密** - 使用 Fernet 加密信息 - payload 格式: [STEG][16字节 salt][4字节长度][加密数据] **3️⃣ 嵌入** - payload 的每一位被嵌入到: - **R, G, B 通道的 LSB** - Alpha 通道保持不变 - 图像视觉上没有变化 **4️⃣ 提取** - 读取 LSB 位 - 重构 payload - 验证 MAGIC 标头 - 从密码 + salt 重新生成密钥 - 解密信息 ## ⚠️ 常见错误 - **密码错误** → Fernet 解密失败 - **图像错误** → 未找到 MAGIC 标头 - **图像过小** → payload 过大 - **隐写图像损坏** → payload 完整性错误 ## 🌟 未来增强 - 嵌入前自动检测容量 - 大图像的进度指示器 - 支持 JPEG(使用基于 DCT 的隐写术) - 多文件嵌入 - 加密前的可选压缩 ## 📦 扩展版本 本仓库专注于作为一种 **命令行 (CLI) 学习项目** 实现的 **特定隐写术技术**。 此项目的目标是: - 在实践层面理解隐写术的工作原理 - 试验数据隐藏技术 - 了解基于 CLI 的安全工具是如何构建的 有关包含以下功能的 **更高级的综合实现**: - 图像隐写术 - 音频隐写术 - 文件加密支持 请参考: ## ⚠️ 免责声明 本项目仅供 **教育和研究目的** 使用。 它 **并非为现实世界的安全通信而设计**。 仅靠隐写术并不能保证保密性,不应将其视为 对适当加密安全性的替代。 ## 📸 预览 ### 1. **加密** ![Rich CLI 预览](https://static.pigsec.cn/wp-content/uploads/repos/cas/d5/d55a777524856b21226ce9cb5b66d993c6cc9b3061beb58a46d0840b997cbfbe.png) ### 2. **解密** ![Rich CLI 预览](https://static.pigsec.cn/wp-content/uploads/repos/cas/29/29c077e40245f64099753901b2383e88df5646e0fd60429850610751c6997672.png) ### 3. **信息** ![Rich CLI 预览](https://static.pigsec.cn/wp-content/uploads/repos/cas/db/dba36b269fa14b26f8ef5418de8821122217ce9bc00944c53ba9954e36cbd929.png) ### 4. **退出** ![Rich CLI 预览](https://static.pigsec.cn/wp-content/uploads/repos/cas/66/66a8d253bb1d2623a6b908b1c51b6c4d19424176b430f2f2162452e08f5526d3.png) ## 🪪 作者 ## ⭐ 支持 如果您喜欢这个项目,请考虑在 GitHub 上给它一个 ⭐!
标签:DNS 反向解析, HTTP工具, Python, 加密解密, 图像隐写术, 密码学, 手动系统调用, 数据隐藏, 无后门, 逆向工具