我正在寻找有关如何通过颜色将少量二进制数据(例如,大约200字节)编码为PNG的信息;基本上Hid.im对.torrent
个文件的作用。任何有关最佳实践的信息或跳板都会很出色。
谢谢!
答案 0 :(得分:5)
在无损压缩图像中隐藏数据的基本原则是修改每个像素的低位,因此这些位总是意味着什么。
例如在R.G.B.中,您可以修改红色值中的最后一位(技术上,人眼对红色对绿色或蓝色不敏感)。
例如,让我们绘制一条8像素的线,例如每个像素的红色值都具有前一个像素的红色值+ 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
就是这样。您知道信息的位置以及如何提取信息。 然而,这种方法受容量的限制。