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, 信息安全, 图像隐写术, 无后门, 网络信息收集