AnujGavhane/LSB_Image_Steganography
GitHub: AnujGavhane/LSB_Image_Steganography
一个用 C 语言实现的 LSB 图像隐写命令行工具,支持在 24 位 BMP 图像中隐藏和提取机密文本文件。
Stars: 0 | Forks: 0
# 🔐 C 语言实现 LSB 图像隐写术
这是一款使用 C 语言开发的命令行应用程序,利用最低有效位(LSB)隐写技术,安全地在 24 位 BMP 图像中隐藏和提取机密文本文件。
## 概述
本项目通过将机密文本文件嵌入 BMP 图像中而不引起任何明显的视觉变化,演示了图像隐写技术。它使用位运算来修改图像像素的最低有效位(LSB),同时保持原始图像质量。
该应用程序支持通过命令行参数进行编码(隐藏数据)和解码(提取隐藏数据)。
## 功能特性
- 将文本文件隐藏在 24 位 BMP 图像中
- 从编码后的图像中恢复隐藏的文本文件
- 保留 BMP 头文件以维持图像完整性
- 使用魔数(magic string)验证已编码的图像
- 存储和检索:
- 机密文件扩展名
- 机密文件大小
- 机密文件数据
- 编码前检查图像容量
- 提供用于编码和解码的命令行界面
- 使用多个源文件和头文件进行模块化实现
## 🛠 使用的技术
- C 编程
- 文件处理(fopen、fread、fwrite、fseek、ftell)
- 位运算
- 结构体
- 命令行参数
- BMP 图像处理
## 🔄 项目工作流程
### 编码
```
Secret.txt
│
▼
Validate Input Files
│
▼
Check Image Capacity
│
▼
Copy BMP Header
│
▼
Encode Magic String
│
▼
Encode File Extension
│
▼
Encode File Size
│
▼
Encode Secret Data
│
▼
Create stego.bmp
```
### 解码
```
stego.bmp
│
▼
Verify Magic String
│
▼
Decode Extension
│
▼
Decode File Size
│
▼
Decode Secret Data
│
▼
Recover Secret File
```
## 🚀 编译
```
gcc *.c
```
## 🔐 编码
```
./a.out -e beautiful.bmp secret.txt stego.bmp
```
## 🔓 解码
```
./a.out -d stego.bmp output.txt
```
## 示例输出
### 编码
```
Read and validate is successful
All files are opened
Checking capacity is successful
BMP Header copied
Magic string encoded
Secret file extension encoded
Secret file size encoded
Secret file data encoded
Encoding successful
```
### 解码
```
Magic string validated
Secret file extension decoded
Secret file size decoded
Message decoded successfully
```
恢复的信息:
```
My password is SECRET ;)
Courage Is Contagious!
```
标签:BMP图像处理, DNS 反向解析, HTTP工具, LSB算法, 图像隐写, 客户端加密, 数据隐藏