Skip to content
/ morpheus Public

Stop reading matrix, write on it ! Library to encrypt and decrypt data in colors of a picture. Process also known as steganography

License

Notifications You must be signed in to change notification settings

pyrou/morpheus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Morpheus (莫菲斯)

License
Code Climate

Morpheus is a library to encrypt and decrypt data in colors of a picture. Process also known as steganography.

The project works regardless with imageMagick, GD library, or the well written intervention library.

Installing via Composer

The recommended way to install Morpheus is through Composer.

composer require pyrou/morpheus

After installing, you need to require Composer's autoloader:

require 'vendor/autoload.php';

How to use it

With GD library

# 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

# 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));

How does it work ?

Let's explain how it works with an example. Consider this beautiful 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");

Bellow is how humans and computers (or perspicuous humans) can see the output.png file.

source.png output.png --debug*
input output.png What library sees

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.

*For understand what Morpheus did, and what he sees now.

About

Stop reading matrix, write on it ! Library to encrypt and decrypt data in colors of a picture. Process also known as steganography

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages