m524security/STEGNOGRAPHY-CLI

GitHub: m524security/STEGNOGRAPHY-CLI

这是一款支持将 AES-256-GCM 加密信息通过 LSB 隐写术嵌入多媒体文件的命令行工具,兼具高安全性与向量化高性能。

Stars: 1 | Forks: 0

# 🩸 DARK-DEVIL 的隐写术模型 — v2 使用 LSB 隐写术将**已加密**的机密信息隐藏在图像、音频或视频文件中, 然后使用相同的密码短语进行恢复。 v2 是原始 CLI 的快速、正确且名副其实的重写版本。 ## v2 中的变化 | 方面 | v1 | v2 | |---|---|---| | 速度 | Python 逐像素循环 | **向量化 NumPy** — 快约 100–1000 倍 | | 加密 | Fernet (AES-**128**),README 中称其为 "AES-256" | **真正的 AES-256-GCM**(经过身份验证)— 现在名副其实 | | 密钥 | `sha256(number)`,无盐值 | **Argon2id** KDF + 每个文件随机盐值,基于密码短语 | | Payload | 遇到任何 `0xFF` 字节就会损坏的结束标记 | 带有魔术标签、**长度前缀**的容器 | | 图像 | 在灰度/RGBA/调色板模式下崩溃 | 自动归一化为 RGB | | 容量 | 仅检查音频 | 检查**所有媒体**,提供清晰的错误提示 | | 音频 | 需要 `pydub` + ffmpeg | 仅使用标准库 `wave`(少了一个重型依赖) | | 接口 | 仅支持菜单 | 菜单 **+** 可脚本化的 `argparse` CLI | | 测试 | 无 | 12 个通过的 pytest 测试用例 | ## 安装 ``` git clone https://github.com/m524security/STEGNOGRAPHY-CLI.git cd STEGNOGRAPHY-CLI pip install -r requirements.txt ``` ## 使用方法 交互式(原有行为): ``` python3 STEGNOGRAPHY.py ``` 可脚本化: ``` # 隐藏 python3 STEGNOGRAPHY.py hide --type image --in cover.png --out secret.png \ --message "meet at dawn" --passphrase "my pass" # 提取(根据扩展名检测的文件类型:png/bmp/wav/avi) python3 STEGNOGRAPHY.py extract --in secret.png --passphrase "my pass" ``` 省略 `--passphrase` 将会触发安全提示(隐藏输入)。 运行测试: ``` pip install pytest && pytest -q # 12 passing ``` ## 支持的媒体 - **图像** → `.png` / `.bmp`(无损;这是 LSB 数据得以保留的必要条件) - **音频** → `.wav` (PCM) - **视频** → `.avi`(FFV1 无损编解码器) ## 工作原理 1. 您的消息使用 **AES-256-GCM** 加密,密钥由您的密码短语 + 随机盐值通过 **Argon2id** 生成。盐值和 nonce 存储在一个小的头部中,因此解密仅需密码短语。 2. 生成的 `magic + version + salt + nonce + length + ciphertext` 数据块会被写入载体文件像素/采样的最低有效位中。 3. 提取过程会读取头部,然后精确读取 `length` 长度的字节,最后 AES-GCM 会验证完整性——密码短语错误或任何篡改都会明确报错。 ## 诚实说明 - LSB 隐写术提供的是**隐蔽性,而非不可检测性**——现代的统计/ML 隐写分析通常能够检测出 LSB 的更改。加密才是真正的保护手段;隐藏只是第二层防御。 - v2 的容器格式与 v1 不同,因此使用 v1 创建的文件无法在此处提取(反之亦然)。 ## 免责声明 仅供教育和授权使用。作者不对任何滥用行为负责。
标签:DNS 反向解析, Python, 信息加密, 安全规则引擎, 密码学, 手动系统调用, 数据隐藏, 无后门, 逆向工具, 隐写术