隐写术是如何在php中实现的

Posted

技术标签:

【中文标题】隐写术是如何在php中实现的【英文标题】:How is steganography implemented in php 【发布时间】:2010-12-24 17:14:39 【问题描述】:

我在某个地方发现了隐写术..在另一个信息中存储或隐藏信息的方式..有时某些图像也被用来隐藏信息..我可以举个例子或进一步了解这个已实现...或者是否可以在 php 中使用它

【问题讨论】:

这是一个非常广泛的问题,并且没有很好地分类。请添加适当的标签(PHP 等)。 你能解释一下为什么要在图像中隐藏信息吗?如果您想保护您的图像,那么您将不得不使用对图像转换具有一定鲁棒性的技术。许多幼稚的 steg 技术很容易被基本的图像转换打破。 事实上,您并没有明确声明要隐藏图像中的信息。到目前为止,我们都假设情况如此。 我有点想知道这是怎么做到的.. 【参考方案1】:

一般来说,如果您谈论的是隐写术,那么基本上您是将信息填充到图像文件的角落和缝隙中。只要图像库不严格根据模式验证图像文件,您几乎可以使用任何图像库。您几乎可以使用任何您喜欢的编程语言。

有多种技术。以下是一些易于编程的。

使用存储图像的图像格式 成块的图像。你可以移动 块以允许文件中的间隙。你 然后可以隐藏信息字符串 在间隙中。 将图像转换为索引 图片。声明一个大于 颜色的数量。现在你可以 在托盘中隐藏额外信息 图片中未使用的颜色。 如果您使用的是图像格式 其中有层,你可以声明一个 alpha通道所在的层 最大。这会导致图层 完全透明。您可以使用 另一个颜色通道来隐藏你的 数据。

还有许多其他技术。请记住使用大量压缩和随机误导性数据来使图像文件看起来合法。

【讨论】:

谢谢:)。我的浏览器拼写检查在字典(歌剧 10 英语)中没有隐写术。答案更正【参考方案2】:

您希望 PHP 中的 GD 库处理 JPG 图像: http://php.net/manual/en/book.image.php

要了解隐写术和隐写分析,请阅读这篇文章: http://www.securityfocus.com/infocus/1684

【讨论】:

【参考方案3】:

一种常用的隐写方法:

考虑一个 1024 x 768、24 位颜色(即 8 位红色、8 位黄色、8 位蓝色)图像。现在,图像中最不重要的颜色并不重要。因此,可以在每个像素中隐藏三位信息。

这样就可以得到 1024 * 768 * 3 / 8 或 294,912 字节的信息,这些信息可以隐藏在大图像中,而不会对图像造成太大影响。

【讨论】:

24 位色位图在网络上并不常见。 @Tom。 PNG 使用无损压缩,所以我假设可以以这种方式使用 24 位 PNG,这并不少见? 是的,这是真的。感谢您的澄清。任何无损压缩位图都是如此。【参考方案4】:

Here 是一个来自 phpclasses.org 的类

使用隐写术隐藏图像中的加密数据

来自Steganography page at wikipedia 的一些有用链接

最后还有here上的演示和源代码

【讨论】:

以上是关于隐写术是如何在php中实现的的主要内容,如果未能解决你的问题,请参考以下文章

C中的隐写术

PDF文件中的隐写术[关闭]

Python 中的隐写术 - Stepic

MISC总结——隐写术(二)

有损压缩中的隐写术 (JAVA)

隐写术总结