LSB图片隐写(1)

该博客讲述了通过stegsolve.jar工具检测图片中可能存在的LSB隐写术,并在控制台分析数据,发现数据头为ZIP文件格式。通过保存并修改文件后缀,成功解压ZIP文件,最终在文本文件中找到flag。内容涉及数字取证和信息安全领域。

题目:

 直接用stegsolve.jar打开观察此图,发现此图片灰色信道0-7没有任何数据,有可能为lsb隐写

打开控制台,发现数据出现问题

 可以看到开头格式为50 4B 03 04为ZIP压缩包的文件头

save bin至桌面更改后缀名为ZIP

 打开文件夹中的txt文本文档,得到flag

### LSB 图像术原理 LSB(Least Significant Bit)图像术的核心思想是利用人类视觉系统的局限性,即人眼对颜色变化的敏感度较低。因此,在图像的像素值中修改最低有效位(LSB),通常不会引起明显的视觉差异[^1]。 具体来说,LSB 术通过将每个像素的最低有效位替换为目标消息的二进制表示中的每一位来实现信息藏[^2]。由于最低有效位的变化范围较小(仅影响亮度的微小波动),这种方法能够有效地藏信息而不被轻易察觉。 #### 实现方法 以下是基于 MATLAB 的 LSB 术实现过程的一个概述: 1. **读取载体图像和秘密信息** 载体图像是用于藏信息的目标图像,通常是 BMP 或 PNG 格式的灰度或彩色图像。秘密信息可以是一段文本或其他形式的数据,需转换为二进制格式以便嵌入[^3]。 2. **准备数据** 将秘密信息编码为二进制字符串,并将其长度附加到开头以方便后续提取。如果载体图像不足以容纳全部数据,则需要提前检测并提示错误[^4]。 3. **嵌入过程** 对于每一个像素值,按照顺序依次取出其最低有效位,并用秘密信息对应的二进制位替代。对于 RGB 彩色图像,可以选择逐通道处理或将所有通道视为整体操作。 4. **保存结果** 嵌入完成后,生成新的含密图像文件。为了保持最佳效果,建议使用无损压缩格式(如 BMP 或 PNG)存储最终结果。 下面是一个简单的 Python 实现示例: ```python import numpy as np from PIL import Image def embed_message(image_path, message, output_path): # 加载图像 img = Image.open(image_path).convert('RGB') pixels = np.array(img) # 编码消息为二进制流 binary_msg = ''.join(format(ord(char), '08b') for char in message) + '11111111' # 终止符 msg_len = len(binary_msg) max_size = pixels.size * 3 // 8 # 计算最大可嵌入字节数 if msg_len > max_size: raise ValueError("Message too large to hide!") index = 0 height, width, _ = pixels.shape for row in range(height): for col in range(width): r, g, b = pixels[row][col] if index < msg_len: r = (r & ~1) | int(binary_msg[index]) index += 1 if index < msg_len: g = (g & ~1) | int(binary_msg[index]) index += 1 if index < msg_len: b = (b & ~1) | int(binary_msg[index]) index += 1 pixels[row][col] = (r, g, b) if index >= msg_len: break result_img = Image.fromarray(pixels) result_img.save(output_path) # 测试函数调用 embed_message('carrier.png', "Secret Message", 'output_image.png') ``` 此代码片段展示了如何将一段文字消息嵌入到一张彩色图片中,并保存含有藏信息的新图片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

currify--+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值