mcrypt_module_open
(PHP 4 >= 4.0.2, PHP 5)
mcrypt_module_open — Opens the module of the algorithm and the mode to be used
Description
resource mcrypt_module_open
( string $algorithm
, string $algorithm_directory
, string $mode
, string $mode_directory
)
The algorithm_directory
and
mode_directory
are used to locate the encryption
modules. When you supply a directory name, it is used. When you set one
of these to the empty string (""), the value set by the
mcrypt.algorithms_dir
or
mcrypt.modes_dir
ini-directive is used. When
these are not set, the default directories that are used are the ones
that were compiled in into libmcrypt (usually /usr/local/lib/libmcrypt).
Examples
Example #1 mcrypt_module_open() examples
<?php
$td = mcrypt_module_open(MCRYPT_DES, '',
MCRYPT_MODE_ECB, '/usr/lib/mcrypt-modes');
$td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
?>
The first line in the example above will try to open the DES cipher from
the default directory and the EBC mode from the directory
/usr/lib/mcrypt-modes. The second example uses
strings as name for the cipher and mode, this only works when the
extension is linked against libmcrypt 2.4.x or 2.5.x.
Examples
Example #2 Using mcrypt_module_open() in encryption
<?php
$td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
$ks = mcrypt_enc_get_key_size($td);
$key = substr(md5('very secret key'), 0, $ks);
mcrypt_generic_init($td, $key, $iv);
$encrypted = mcrypt_generic($td, 'This is very important data');
mcrypt_generic_deinit($td);
mcrypt_generic_init($td, $key, $iv);
$decrypted = mdecrypt_generic($td, $encrypted);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
echo trim($decrypted) . "\n";
?>
See also
mcrypt_module_close(),
mcrypt_generic(),
mdecrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().