1

我正在寻找有关如何通过颜色将少量二进制数据(例如,大约 200 个字节)编码为 PNG 的信息;本质上是Hid.im.torrent文件所做的。最佳实践的任何信息或跳板都将是一流的。

谢谢!

4

1 回答 1

5

将数据隐藏在无损压缩图像中的基本原理是修改每个像素的低位,因此这些位总体上是有意义的。

例如在 RGB 中,您可以修改红色值的最后一位(技术上人眼对红色的敏感度低于对绿色或蓝色的敏感度)。

例如,我们画一条 8 像素的线,比如每个像素的 Red 值都有前一个像素的 Red + 1 的值

   Pixel1 = (120, 203, 391)
   Pixel2 = (121, ..., ...)
   ...
   Pixel8 = (128, ..., ...)

二进制形式是:

   Pixel1 = (01111000, ..., ...)
   Pixel2 = (01111001, ..., ...)
   ...
   Pixel8 = (10000000, ..., ...)

现在,让我们加密该行中的数字 63:

   63 = 00011111
   # Encrypting from right to left, by writing the data to the minor bit
   Pixel1 = (0111100[0], ..., ...) -> 120
   Pixel2 = (0111100[0], ..., ...) -> 120
   Pixel3 = (0111101[0], ..., ...) -> 122
   Pixel4 = (0111101[1], ..., ...) -> 123
   Pixel5 = (0111110[1], ..., ...) -> 125
   ...
   Pixel8 = (1000000[1], ..., ...) -> 129

就是这样。您知道信息在哪里以及应该如何提取信息。然而,这种方法受到容量的很大限制。

于 2011-05-23T20:24:49.563 回答