【问题标题】:Hiding secrets inside photographs with php用php隐藏照片中的秘密
【发布时间】:2013-10-18 20:51:21
【问题描述】:

我创建了一项将文字隐藏在照片中的服务。例如:

$img_name = "myimage.jpeg";
$orig_contents = file_get_contents($img_name);
$msg = "My secret.";

$fp = fopen($img_name, "wb"); 
fwrite($fp, $orig_contents . $msg); 
fclose($fp); 

我很好奇:使用这种方法我可以在照片中隐藏多少信息?例如,我可以在图像文件中嵌入小说的章节吗?我已经添加了相当大的文本块而没有损坏图像,但我想知道 PHP 或图像查看应用程序是否对此施加了限制。

(P.S. 我知道这种类型的隐写术是不安全的;我这样做只是为了好玩。)

【问题讨论】:

  • 多么奇怪的事情啊……!
  • 听起来你可以简单地测试一下自己
  • 哈哈。来吧,伙计。在朋友之间交换信息很有趣。 :) 如果有人有建设性的建议,我将不胜感激。
  • 这是几年前的时尚,我们中的一些人仍在检查大小不寻常的文件,以防万一。
  • 我不是密码学家,但我建议使用像 PNG 这样的无损图像格式,这样您的嵌入数据就不会被破坏。

标签: php image security steganography


【解决方案1】:

你应该看看Steganography。请注意,您并没有将数据隐藏在图像中。任何可以使用文本编辑器打开图像的人都会在文件中的某处看到您的文本(在这种情况下,最后会更糟)。如果我是你,我会这样做:

  1. 使用一些 decent Algorithm 和 strong 密钥加密您的数据
  2. 创建一个函数,以 伪 随机方式通过文件分发您的数据,这样任何人都会注意到您试图在其中放入一些秘密(注意您必须恢复之后)。在常规位图图像中,您可以使用每个像素的最后一位来保存您的信息,因为如果您将原始图像与具有隐藏数据的图像进行比较,人眼不会感知到它所做的这种变化。李>
  3. 祈祷 NSA 没有阅读这篇文章,否则你会遇到一些严重的麻烦 :)

【讨论】:

  • 作为 NSA 的成员 - 为时已晚。
【解决方案2】:

不,PHP 或JPEG format 对您可以使用此方法添加到图像的数据量基本上没有限制。这是可行的,因为 JPEG 格式将所有图像数据存储在文件的开头,直到某个标记。在标记之后,任何数据都被假定为其他东西,例如缩略图。

一个cool trick(也适用于 GIF 图像)是您可以将 ZIP 文件附加到图像的末尾,并且该文件既可以用作 JPEG 文件,也可以用作 ZIP 文件。只需更改文件扩展名,图像处理程序或 ZIP 程序都可以读取它。

【讨论】:

    【解决方案3】:

    我认为这不是最安全的方法,如果您真的想将字符串隐藏到图像中,您可能会使用特定的模式每 10 个像素更改一个像素,这个想法很简单,将您的图像转换为一个整数数组,遍历数组,每 10 个像素将值更改为 ascii character 数字。

    每 10 个像素更改 1 个不会产生很多噪音。

    为了让它更安全使用编码,所以使用你自己的地图来编码 ascii,就像@fvdalcin 建议的那样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-15
      • 1970-01-01
      • 2014-10-31
      • 2017-04-18
      • 2020-02-10
      • 2012-04-20
      • 2020-02-01
      相关资源
      最近更新 更多