objective-c - 如何在 C 中使用隐写术在 PNG 中隐藏 4 个字母数字字符?

标签 objective-c c png hide steganography

我看到了一堆示例代码,它们做的比我想做的要多得多,而且它的开销似乎比我想要的要多(也许这是不可避免的)。

我只想在 PNG 文件中隐藏/检索 4 个字母的消息(单词)。这 4 个字母永远不会改变。它将始终是相同的 4 个字母。它的目的只是充当一种简单的指纹。我看到的所有示例看起来都非常复杂,并且涉及压缩文本文件等。

有谁知道已经编写的与此类工作相关的任何示例代码?任何语言都可以——我的最终需要是 C 或 Obj-C。

最佳答案

要将数据隐藏在文件中,必须了解文件中的预期内容。例如,如果您试图在其中隐藏内容的文件有大面积的纯色,即使将一个像素更改为相邻颜色也可能会很明显。

如果假设单个像素偏移到相邻颜色不会引人注意,您可以通过伪随机分配每个红色、绿色或蓝色分量的 LSB 来在文件中存储 4 个字母(20 位)像素到 20 个 bin 之一,然后计算每个 bin 中的偶数或奇数像素分量是否设置了 LSB。如果 bin 的奇偶性与 bin 的所需值不匹配,则从分配给该 bin 的像素分量中任意/随机选择一个像素分量,并任意/随机地将其递增或递减 1(如果为 0,您将必须递增;如果是 FF,则递减)。

解码需要知道像素分量到 20 个 bin 的映射,但即使给定大量未更改和已更改文件对,也无法推测出足够的信息来解码任意文件。

关于objective-c - 如何在 C 中使用隐写术在 PNG 中隐藏 4 个字母数字字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4456198/

相关文章:

ios - iPhone/iPad iOS7 中的设备方向问题

c - 处理结构体c

image - 如何在 PIL 中将具有透明度的基于调色板的 PNG 转换为 RGB?

image - 创建/编辑 PNG 图像的免费工具?

javascript - 使用 "toDataURL"方法转换 Canvas 时如何设置图像质量?

ios - 更改iOS通讯录中的群组名称(ABGroup)

objective-c - Core Plot - 如何在具有对数轴的绘图空间中将接触点转换为绘图点

ios - 单选按钮选择时原型(prototype)单元重用

c - 防止线程写入同一文件

c - 获取地址信息错误 : ai_socktype not supported