Filter::Crypto is a Perl module that can create runnable Perl files encrypted with OpenSSL libcrypto.
# Encrypt a Perl script using the crypt_file script; run it as usual:
$ crypt_file --in-place hello.pl
# Create a PAR archive containing an encrypted Perl script; run it as usual:
# (This example assumes that you also have PAR installed)
$ pp -f Crypto -M Filter::Crypto::Decrypt -o hello hello.pl
# Display the Filter-Crypto distribution version number:
print "This is Filter-Crypto $Filter::Crypto::VERSIONn";
The Filter-Crypto distribution provides the means to convert your Perl files into an encrypted, yet still runnable, format to hide the source code from casual prying eyes.
This is achieved using a Perl source code filter. The encrypted files, produced using the Filter::Crypto::CryptFile module, automatically have one (unencrypted) line added to the start of them that loads the Filter::Crypto::Decrypt module. The latter is a Perl source code filter that decrypts the remaining (encrypted) part of the Perl file on the fly when it is run. See perlfilter if you want to know more about how Perl source code filters work.
Encrypted files can also be produced more conveniently using the crypt_file script, or (if you also have the PAR module available) using the PAR::Filter::Crypto module. The latter can be utilized by the standard PAR tools to produce PAR archives in which your Perl files are encrypted.
The actual encryption and decryption is performed using one of the symmetric cipher algorithms provided by the OpenSSL libcrypto library. The EVP library high-level interface functions to the various cipher algorithms themselves are used so that your choice of algorithm (and also what password or key to use) is made simply by answering some questions when building this distribution. See the INSTALL file for more details.
This module itself only contains this documentation and the version number of the Filter-Crypto distribution as a whole.