pyrou/morpheus

用于在图片颜色中加密和解密数据的库。此过程也称为隐写术。

1.0.0 2015-03-19 19:36 UTC

This package is not auto-updated.

Last update: 2024-09-18 08:29:58 UTC


README

License
Code Climate

Morpheus 是一个用于在图片颜色中加密和解密数据的库。此过程也称为隐写术。

项目可以与 imageMagick、GD 库或优秀的 intervention 库一起使用。

通过 Composer 安装

推荐通过 Composer 安装 Morpheus。

composer require pyrou/morpheus

安装后,您需要引入 Composer 的自动加载器

require 'vendor/autoload.php';

如何使用它

使用 GD 库

# write data in image
$im = imagecreatefrompng("source.png");
Morpheus\Data::write("Helloworld", $im);
imagepng($im, "output.png");

# read data from image
$im = imagecreatefrompng("output.png");
assert("Helloworld" === Morpheus\Data::read($im));

使用 Image Magick

# write data in image
$im = new Imagick("source.png");
Morpheus\Data::write("Helloworld", $im);
$im->writeImage("output.png");

# read data from image
$im = new Imagick("output.png");
assert("Helloworld" === Morpheus\Data::read($im));

它是如何工作的?

让我们用一个例子来解释它是如何工作的。考虑这个漂亮的 octocat。

input

require 'vendor/autoload.php';
$im = imagecreatefrompng("source.png");
$data = base64_encode(
    "L'homme est un homme tant qu'il s'évertue ".
    "à s'élever au dessus de la nature, et cette ".
    "nature est à la fois intérieure et extérieure.");
Morpheus\Data::write($data, $im);
imagepng($im, "output.png");

以下是人类和计算机(或敏锐的人类)如何看到 output.png 文件。

实际上,库略微改变了文件上半部分的每个像素的颜色。变化如此之小,以至于人眼无法察觉。

*为了理解 Morpheus 做了什么,以及它现在看到了什么。