LSB 隐写 · 顺序编码
把水印文本按位写进每个像素 R/G/B 分量的最低有效位。像素值最多变化 1,肉眼完全看不出来。 数据格式是 8 bit 长度头 + 每字符 16 bit 的 UTF-16 码元 + 16 bit CRC 校验。 填了口令,写入位置会被打散;写多份冗余,局部被涂掉还能表决恢复。
必须导出 PNG。存成 JPEG 或者被平台二次压缩,最低有效位会被直接改写,水印就没了。
嵌入
提取
解析结果:—
原理速览:只改每个颜色值的最后一位
一个 8 bit 颜色值的最低位只贡献 1/255 的亮度。顺序写入载荷时肉眼难辨,但 JPEG 量化会批量改写这些位。
- 编码生成长度头与位串
- 写入替换 RGB 最低位
- 保存导出无损 PNG
- 读取CRC 校验后恢复
能做
在无损图片中嵌入并按顺序恢复短文本载荷。
不能做
不能抵抗 JPEG、社交平台压缩、缩放或像素重绘。