数字水印实验室

LSB 隐写 · 顺序编码

把水印文本按位写进每个像素 R/G/B 分量的最低有效位。像素值最多变化 1,肉眼完全看不出来。 数据格式是 8 bit 长度头 + 每字符 16 bit 的 UTF-16 码元 + 16 bit CRC 校验。 填了口令,写入位置会被打散;写多份冗余,局部被涂掉还能表决恢复。

必须导出 PNG。存成 JPEG 或者被平台二次压缩,最低有效位会被直接改写,水印就没了。

嵌入

提取

解析结果:—

原理速览:只改每个颜色值的最后一位

一个 8 bit 颜色值的最低位只贡献 1/255 的亮度。顺序写入载荷时肉眼难辨,但 JPEG 量化会批量改写这些位。

  1. 编码生成长度头与位串
  2. 写入替换 RGB 最低位
  3. 保存导出无损 PNG
  4. 读取CRC 校验后恢复
能做

在无损图片中嵌入并按顺序恢复短文本载荷。

不能做

不能抵抗 JPEG、社交平台压缩、缩放或像素重绘。