The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Crypt::Image - Interface to hide text into an image.

VERSION

Version 0.04

DESCRIPTION

It requires key image and a text message to start with. The text message is scattered through out the image and gaps are filled with random trash. RGB is used to hide the text message well from any algorithm that searches for similarities between 2 or more images which are generated by the same key. The UTF char code is randomly distributed between the R, G and B, which then gets added/substracted from the original RGB. So even if the same key image is used to encrypt the same text, it will look different from previously encrypted images and actual data pixels are unrecognizable from trash data, which also changes randomly every time.

CONSTRUCTOR

The constructor takes at the least the location key image, currently only supports PNG format. Make sure your key image is not TOO BIG. Please refer to the image key.png supplied with the package tar ball to give you a start.

    use strict; use warnings;
    use Crypt::Image;

    my $crypter = Crypt::Image->new(file => 'your_key_image.png');

METHODS

encrypt()

Encrypts the key image (of type PNG currently) with the given text & save it as the new image by the given file name. The length of the given text depends on height and width of the key image given in the constructor. It should not be longer than (width*height)-2.

    use strict; use warnings;
    use Crypt::Image;

    my $crypter = Crypt::Image->new(file => 'your_key_image.png');
    $crypter->encrypt('Hello World', 'your_new_encrypted_image.png');

decrypt()

Decrypts the given encrypted image and returns the hidden text.

    use strict; use warnings;
    use Crypt::Image;

    my $crypter = Crypt::Image->new(file => 'your_key_image.png');
    $crypter->encrypt('Hello World', 'your_new_encrypted_image.png');
    print "Text: [" . $crypter->decrypt('your_new_encrypted_image.png') . "]\n";

AUTHOR

Mohammad S Anwar, <mohammad.anwar at yahoo.com>

BUGS

Please report any bugs or feature requests to bug-crypt-image at rt.cpan.org or through the the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Crypt-Image. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Crypt::Image

You can also look for information at:

ACKNOWLEDGEMENT

Joonas Vali, author of the blog http://forum.codecall.net/classes-code-snippets/18135-java-encrypt-text-into-image.html gave me the idea for this module.

LICENSE AND COPYRIGHT

Copyright 2011 Mohammad S Anwar.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.

DISCLAIMER

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.