JayeshSuryavanshi/Image-Steganography-Cybersecurity

GitHub: JayeshSuryavanshi/Image-Steganography-Cybersecurity

利用 LSB 奇偶校验像素操作在 PNG 图像中隐藏与恢复文本的 Python 隐写工具。

Stars: 1 | Forks: 0

# 图像隐写术-网络安全 一个小型 Python 程序,利用**最低有效位 (LSB) 像素操作**将秘密文本信息隐藏在图像中,并将其提取出来。图像的变化肉眼无法察觉,因此生成的图片看起来与原始图片一模一样,同时却秘密携带着隐藏的数据。 ## 概述 隐写术是将信息隐藏在看似普通的载体(这里是图像)中的做法,从而隐藏信息本身的存在。与使数据变得不可读的加密不同,隐写术隐藏了数据存在这一事实。 本项目提供了一个单一的交互式脚本,可以: - 将文本信息**编码**到图像副本中,以及 - 从此类图像中**解码**(恢复)以前隐藏的信息。 ## LSB 隐写术在此处的工作原理 图像的每个像素由三个颜色通道组成:红、绿和蓝 (RGB)。每个通道的值都是一个整数 (0-255)。此程序通过将单个通道值微调为**奇数或偶数**来隐藏数据: - **偶数**通道值代表位 `0`。 - **奇数**通道值代表位 `1`。 因为将通道值增加或减少一,只会对其颜色产生无法察觉的改变,所以可以在没有可见差异的情况下嵌入信息。 ### 编码 (`encode` / `modPix` / `encode_enc`) 1. `genData()` 使用字符的 ASCII 值(例如 `format(ord(c), '08b')`)将信息中的每个字符转换为其 8 位二进制形式。 2. 对于每个字符(8 位),`modPix()` 从图像中读取**三个像素**(9 个颜色通道)。 3. 这 9 个通道值中的前 8 个被调整,使其奇偶性(奇/偶)与该字符的 8 位相匹配。 4. **第 9 个通道**作为停止标志: - 如果后面还有字符,则设为**偶数** (`0`),或者 - 如果这是信息的最后一个字符,则设为**奇数** (`1`)。 5. `encode_enc()` 将修改后的像素写回图像副本并保存为新文件。 ### 解码 (`decode`) 1. 每次读取已编码图像的三个像素(9 个通道)。 2. 前 8 个通道的奇偶性被读回为 8 位,然后使用 `chr(int(binstr, 2))` 转换为字符。 3. 检查第 9 个通道:如果它是**奇数**,则信息已完整,解码停止;否则继续读取。 ## 依赖项 - **Python 3** - **[Pillow](https://pypi.org/project/Pillow/)**(`PIL` 图像库)—— 用于读取像素、复制图像和保存输出。 安装方式: ``` pip install -r requirements.txt ``` ## 如何运行 该脚本是交互式的,会在终端中提示输入。 ``` python stegano.py ``` 您将看到一个菜单: ``` :: Welcome to Steganography :: 1. To Encode data into specific image 2.To Decode data into specific image ``` ### 编码信息 选择 `1`,然后提供: - **输入图像名称**(带扩展名,例如 `dark2.png`), - 要隐藏的**信息**, - **输出图像名称**(带扩展名,例如 `encoded.png`)。 程序会保存一个包含隐藏信息的新图像。 ### 解码信息 选择 `2`,然后提供**已编码的图像名称**(带扩展名)。隐藏的信息将被打印回终端。 ## 使用示例 ``` $ python stegano.py :: Welcome to Steganography :: 1. To Encode data into specific image 2.To Decode data into specific image 1 Enter image name(with extension): dark2.png Enter data to be encoded : Hello World Enter the name of new image(with extension): encoded.png $ python stegano.py :: Welcome to Steganography :: 1. To Encode data into specific image 2.To Decode data into specific image 2 Enter image name(with extension) :encoded.png Decoded word- Hello World ``` ## 技术栈 - **语言:** Python 3 - **库:** Pillow (PIL) - **技术:** 针对 RGB 通道的 LSB 式奇偶校验(奇/偶)像素操作 ## 项目结构 ``` Image-Steganography-Cybersecurity/ ├── stegano.py # Main script: encode/decode logic and interactive menu ├── dark2.png # Sample carrier image ├── requirements.txt # Python dependencies └── README.md # This file ```
标签:DNS 反向解析, LSB, meg, Pillow, Python, 信息安全, 图像隐写术, 无后门, 网络信息收集