-
-
[翻译]图像隐写之使用PHP隐藏图像中的文本
-
发表于:
2017-12-28 01:36
7187
-
隐写术是一门研究隐藏信息的科学艺术,通过隐写术,可以只让发送者和接收者知道隐藏的信息。
图像隐写术则是研究将数据隐藏在图像中,通过该技术可以防止无关用户发现这些隐藏的信息或数据。
图像隐写的基本原理就是修改LSB(Least Significant Bit,最不重要的那一bit)并不会被人眼察觉到。所以我们修改RGB的LSB值来存储隐藏信息,同时不影响图像的颜色。
在这个例子中,我们仅仅修改蓝色的LSB,但是如果我们想的话,也可以修改所有的红,绿和蓝的成分。不过只修改蓝色的LSB,我们可以隐藏的信息更少一些。我们也可以将要隐藏信息的长度存储到图像中,不过本教程中还没有做这一点。
假设我们现在要将1101藏到图片中。
首先我们要得到图片中每个像素的RGB值,因为我们要隐藏4bit的数据,而且我们要修改蓝色的部分,所以我们需要4个像素。
假设图片前4个像素的RGB值如下:
11001100 10010001 00101011
00011000 11110000 11111110
11100010 00100101 01010101
11111101 00001010 01000011
现在,我们将这4个RGB值最后的bit替换成1101,
现在新的RGB值变成了:
11001100 10010001 00101011
00011000 11110000 11111111
11100010 00100101 01010100
11111101 00001010 01000011
加粗的最后一bit,就是我们要隐藏到图片的信息。
现在将新的RGB值应用到像素,因为人眼并不会注意到这种改变,所以图片看起来还是一样的。
加密的部分到现在就完成了,接下来我们将解密隐藏在图片的信息。
为了达到这一点,我们需要取出每个像素的RGB值,然后合并LSB来得到我们隐藏的信息。
我们需要一张图片和3个php脚本来实现基本的图像隐写。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课