Opens the module of the algorithm and the mode to be used (original) (raw)
mcrypt_module_open
(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)
mcrypt_module_open — Opens the module of the algorithm and the mode to be used
Warning
This function has been_DEPRECATED_ as of PHP 7.1.0 and_REMOVED_ as of PHP 7.2.0. Relying on this function is highly discouraged.
Description
mcrypt_module_open ( string $algorithm
, string $algorithm_directory
, string $mode
, string $mode_directory
) : resource
Parameters
algorithm
One of the MCRYPT_ciphername
constants, or the name of the algorithm as string.
algorithm_directory
The algorithm_directory
parameter is used to locate the encryption module. When you supply a directory name, it is used. When you set it to an empty string (""
), the value set by themcrypt.algorithms_dir
php.ini directive is used. When it is not set, the default directory that is used is the one that was compiled into libmcrypt (usually /usr/local/lib/libmcrypt).
mode
One of the MCRYPT_MODE_modename
constants, or one of the following strings: "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".
mode_directory
The mode_directory
parameter is used to locate the encryption module. When you supply a directory name, it is used. When you set it to an empty string (""
), the value set by themcrypt.modes_dir
php.ini directive is used. When it is not set, the default directory that is used is the one that was compiled-in into libmcrypt (usually /usr/local/lib/libmcrypt).
Return Values
Normally it returns an encryption descriptor, or FALSE
on error.
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 ECB
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.
Example #2 Using mcrypt_module_open() in encryption
`<?php
/* Open the cipher /
$td = mcrypt_module_open('rijndael-256', '', 'ofb', '');/ Create the IV and determine the keysize length, use MCRYPT_RAND
- on Windows instead / iv=mcryptcreateiv(mcryptencgetivsize(iv = mcrypt_create_iv(mcrypt_enc_get_iv_size(iv=mcryptcreateiv(mcryptencgetivsize(td), MCRYPT_DEV_RANDOM); ks=mcryptencgetkeysize(ks = mcrypt_enc_get_key_size(ks=mcryptencgetkeysize(td);/ Create key / key=substr(md5(′verysecretkey′),0,key = substr(md5('very secret key'), 0, key=substr(md5(′verysecretkey′),0,ks);/ Intialize encryption /
mcrypt_generic_init($td, key,key, key,iv);/ Encrypt data / encrypted=mcryptgeneric(encrypted = mcrypt_generic(encrypted=mcryptgeneric(td, 'This is very important data');/ Terminate encryption handler /
mcrypt_generic_deinit($td);/ Initialize encryption module for decryption /
mcrypt_generic_init($td, key,key, key,iv);/ Decrypt encrypted string / decrypted=mdecryptgeneric(decrypted = mdecrypt_generic(decrypted=mdecryptgeneric(td, $encrypted);/ Terminate decryption handle and close module /
mcrypt_generic_deinit($td);
mcrypt_module_close($td);/ Show string */
echo trim($decrypted) . "\n";
?> `
See Also
- mcrypt_module_close() - Closes the mcrypt module
- mcrypt_generic() - This function encrypts data
- mdecrypt_generic() - Decrypts data
- mcrypt_generic_init() - This function initializes all buffers needed for encryption
- mcrypt_generic_deinit() - This function deinitializes an encryption module