Library to encrypt and decrypt data in colors of a picture. Process also known as steganography
Morpheus is a library to encrypt and decrypt data in colors of a picture. Process also known as steganography., (*2)
The project works regardless with imageMagick, GD library, or the well written intervention library., (*3)
The recommended way to install Morpheus is through Composer., (*4)
composer require pyrou/morpheus
After installing, you need to require Composer's autoloader:, (*5)
require 'vendor/autoload.php';
With GD library, (*6)
# 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));
With Image Magick, (*7)
# 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));
Let's explain how it works with an example. Consider this beautiful octocat., (*8)
, (*9)
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");
Bellow is how humans and computers or perspicuous humans can see the output.png
file., (*10)
source.png | output.png |
--debug * |
---|---|---|
![]() |
![]() |
![]() |
In fact, the library has slightly changed the coloration of each pixels in upper-half of the file. So slightly that human eyes are NOT able to detect it., (*11)
*For understand what Morpheus did, and what he sees now., (*12)