# 图片隐写术：嵌入与检测

把文字藏进 PNG 的最低有效位、再原样提取，并运行 Westfeld–Pfitzmann 卡方隐写分析（含滑窗 p 曲线与 LSB 位平面预览）。

> 标准页面: https://elysiatools.com/zh/tools/image-steganography-embed-detect

- **分类:** Security

- **关键词:** 隐写术, lsb 隐写, 图片藏字, 隐写分析, 卡方攻击, png 隐藏信息, ctf misc

## 概述

嵌入按可互操作顺序（行主序、R→G→B、高位在前——CyberChef 的 Extract LSB 与 StegOnline 读取的正是同一约定）把 UTF-8 字节写进每个像素各通道的最低位，并用 12 字节 STG1 帧头（magic + 标志 + 32 位大端长度）封装，提取自描述、干净图片几乎不会误报。填入散布种子则改用带种子的 Fisher–Yates 置换（cyrb128 + mulberry32）打乱样本流：顺序提取工具只能读到噪声，卡方滑落曲线也会被抹平。默认跳过透明像素——浏览器预乘 alpha 管线会把全透明像素的 RGB 当作可丢弃值，再保存时可能毁掉隐藏位；其余像素逐位无损（LSB 替换对每个样本至多改动 1）。检测按通道对 PoV 值对 (2k, 2k+1) 计算卡方统计量——嵌入数据会让值对直方图趋于均衡——p 值由正则化不完全伽马函数给出，并对 1%…100% 滑动前缀分别计算以定位顺序信息的结束点，另附 LSB 位平面预览与熵统计。定位为教学/CTF 工具：这不是加密，散布种子为 32 位、可被穷举。

## 输入项

- **PNG 图片** (file)
- **模式** (select)
- **秘密信息（嵌入模式）** (textarea): The message to hide inside the pixels…
- **散布种子（可选）** (text): leave empty for sequential embedding
- **通道** (select)
- **跳过透明像素** (checkbox)

## 适用场景

- 需要在 PNG 图片中隐匿嵌入文本信息，且要求图像视觉效果保持完全无损时。
- 参加 CTF Misc 竞赛或进行网络安全教学，需要分析可疑 PNG 是否存在 LSB 隐写数据时。
- 需要使用标准 LSB 协议或指定散布种子从含密 PNG 图片中精确还原秘密文本时。

## 工作原理

- 数据编码与嵌入：将文本以 UTF-8 编码并封装 12 字节 STG1 帧头，按行主序、RGB 顺序或散布种子置换序列逐位写入像素的最低有效位中。
- 自描述提取：扫描像素流并读取 STG1 帧头，获取载荷长度与标志位，精准解码出原始秘密文本，有效避免干净图片的误报。
- 卡方隐写分析：针对像素值对 (2k, 2k+1) 统计直方图均衡度，通过正则化不完全伽马函数计算滑动前缀 p 值，精准定位顺序嵌入信息的边界并展示 LSB 位平面。

## 使用案例

- CTF Misc 隐写出题与解题，用于构建或分析基于位平面的隐写试题。
- 数字资产盲水印与版权溯源，在设计素材中无痕埋入创作者版权标识与签发时间戳。
- 信息安全课程教学演示，直观展示 LSB 替换原理、直方图均衡化效应及卡方检测方法。

## 常见问题

### 为什么该工具仅支持 PNG 格式图片？

LSB 隐写依赖像素最低位的绝对无损，JPEG 等有损压缩格式会修改像素值导致隐藏数据损坏，因此必须采用无损 PNG 格式。

### 散布种子（Scatter Seed）有什么作用？

散布种子利用伪随机置换将信息分散到全图像素中，使常规顺序提取工具只能读到噪声，并可抹平顺序嵌入在卡方分析中的特征曲线。

### 为什么要默认勾选“跳过透明像素”选项？

浏览器的预乘 Alpha 机制可能丢弃全透明像素的 RGB 数据，跳过透明像素可防止图片在重新保存时损坏隐藏位。

### 卡方分析图表中的 p 曲线骤降代表什么？

顺序嵌入 LSB 会使值对频次强制均衡，导致 p 值接近 1；当扫描进入未嵌入的原始图像区域时 p 值会迅速滑落，该转折点即为隐写数据结束位置。

### LSB 隐写能够替代数据加密吗？

不能。隐写术用于隐藏通信行为本身而非保证数据机密性，工具内置散布种子可被穷举，敏感内容嵌入前应先独立加密。

## 相关工具

- [无障碍合规检测器](https://elysiatools.com/zh/tools/accessibility-checker): 检测 HTML、网页或设计稿图片中的常见 WCAG 2.1 问题，并给出可直接修复的建议
- [VP8 图像分析器](https://elysiatools.com/zh/tools/vp8-image-analyzer): 使用 Sharp 分析 WebP/VP8 图像，生成灰度位移图，并用 Three.js 渲染可旋转的 3D 浮雕表面
- [AI图片转Markdown](https://elysiatools.com/zh/tools/ai-image-to-markdown): 使用AI视觉模型从图片中提取文本并转换为Markdown格式
- [图片颜色通道提取器](https://elysiatools.com/zh/tools/image-channel): 提取、操作和分析单个颜色通道（RGB、Alpha、亮度），提供专业处理选项
- [图片主要颜色提取器](https://elysiatools.com/zh/tools/image-color-extractor): 使用多种算法从图片中提取主要颜色，包括K-means聚类和直方图分析
- [二维码解码器](https://elysiatools.com/zh/tools/qr-code-decoder): 从图片中解码二维码并提取包含的文本或网址
- [图像元数据提取器](https://elysiatools.com/zh/tools/image-metadata): 从图像中提取全面的元数据，包括EXIF、IPTC、XMP和技术信息
- [播客批量发布打包器](https://elysiatools.com/zh/tools/audio-batch-podcast-publisher-pack): 批量归一化播客集数、写入元数据和章节，并打包为可交付 ZIP。

## 示例

- [Web Go 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-go): Web Go 图像处理示例，包括图像读写、图像缩放和格式转换
- [Web Python 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-python): Web Python 图像处理示例，使用 PIL/Pillow 包括读取、保存、缩放和格式转换
- [Android Java 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-java): Android Java 图像处理示例，包括图像读取保存、缩放和格式转换
- [Android Kotlin 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-kotlin): Android Kotlin 图像处理示例，包括图像读取保存、缩放和格式转换

## 相关内容

- [文本分析、可读性与内容检查工具](https://elysiatools.com/zh/hubs/text-analyze): 在一个专题中比较文本统计、语言识别、可读性评分、情感分析、内容审核和模式分析工具。
- [图片格式转换与动画导出工具](https://elysiatools.com/zh/hubs/image-convert): 在一个专题里比较 JPG、PNG、GIF、AVIF、WebP、TIFF、ICO、base64 以及动画导出相关的图片格式转换工具。
- [文本大小写、编码与规范化转换工具](https://elysiatools.com/zh/hubs/text-convert): 在一个专题中比较文本大小写转换、全半角转换、编码转换、Quoted-Printable 处理和行内文本规范化工具。
- [图片整理、修饰与批处理准备工具](https://elysiatools.com/zh/hubs/image-utility): 把图片清理、裁边、补边、加框、批量缩放压缩、水印和视觉修饰工具集中到一个专题中，适合素材整理流程。
