LSB图片隐写(2)

博客内容涉及图片格式分析,重点关注jpg文件中可能隐藏的Unicode加密数据。通过对最后几行的&#xxx格式数据进行解码,成功获取到加密的flag,揭示了信息安全领域的隐藏信息解密技术。

题目:

 看到此图片格式为jpg,先暂时不考虑到lsb隐写,放入wenhex中观察情况

发现最后几行的数据格式都为&#xxx,想到unicode加密

将加密数据进行解码,拿到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') ``` 此代码片段展示了如何将一段文字消息嵌入到一张彩色图片中,并保存含有藏信息的新图片
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

currify--+

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

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

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

打赏作者

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

抵扣说明:

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

余额充值