用php隐藏照片里面的秘密

haw*_*ris 5 php security steganography image

我创建了一个隐藏文本内部照片的服务.例如:

$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); 
Run Code Online (Sandbox Code Playgroud)

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

(PS我知道这种隐写术是不安全的;我只是为了好玩而这样做.)

fvd*_*cin 7

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

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


Bil*_*ard 5

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

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