Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

mcrypt_generic_init(3) [php man page]

MCRYPT_GENERIC_INIT(3)							 1						    MCRYPT_GENERIC_INIT(3)

mcrypt_generic_init - This function initializes all buffers needed for encryption

SYNOPSIS
int mcrypt_generic_init (resource $td, string $key, string $iv) DESCRIPTION
You need to call this function before every call to mcrypt_generic(3) or mdecrypt_generic(3). PARAMETERS
o $td - The encryption descriptor. o $key - The maximum length of the key should be the one obtained by calling mcrypt_enc_get_key_size(3) and every value smaller than this is legal. o $iv - The IV should normally have the size of the algorithms block size, but you must obtain the size by calling mcrypt_enc_get_iv_size(3). IV is ignored in ECB. IV MUST exist in CFB, CBC, STREAM, nOFB and OFB modes. It needs to be random and unique (but not secret). The same IV must be used for encryption/decryption. If you do not want to use it you should set it to zeros, but this is not recommended. RETURN VALUES
The function returns a negative value on error: -3 when the key length was incorrect, -4 when there was a memory allocation problem and any other return value is an unknown error. If an error occurs a warning will be displayed accordingly. FALSE is returned if incorrect parameters were passed. SEE ALSO
mcrypt_module_open(3). PHP Documentation Group MCRYPT_GENERIC_INIT(3)

Check Out this Related Man Page

MDECRYPT_GENERIC(3)							 1						       MDECRYPT_GENERIC(3)

mdecrypt_generic - Decrypts data

SYNOPSIS
string mdecrypt_generic (resource $td, string $data) DESCRIPTION
This function decrypts data. Note that the length of the returned string can in fact be longer than the unencrypted string, due to the padding of the data. PARAMETERS
o $td - An encryption descriptor returned by mcrypt_module_open(3) o $data - Encrypted data. EXAMPLES
Example #1 mdecrypt_generic(3) Example <?php /* Data */ $key = 'this is a very long key, even too long for the cipher'; $plain_text = 'very important data'; /* Open module, and create IV */ $td = mcrypt_module_open('des', '', 'ecb', ''); $key = substr($key, 0, mcrypt_enc_get_key_size($td)); $iv_size = mcrypt_enc_get_iv_size($td); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); /* Initialize encryption handle */ if (mcrypt_generic_init($td, $key, $iv) != -1) { /* Encrypt data */ $c_t = mcrypt_generic($td, $plain_text); mcrypt_generic_deinit($td); /* Reinitialize buffers for decryption */ mcrypt_generic_init($td, $key, $iv); $p_t = mdecrypt_generic($td, $c_t); /* Clean up */ mcrypt_generic_deinit($td); mcrypt_module_close($td); } if (strncmp($p_t, $plain_text, strlen($plain_text)) == 0) { echo "ok "; } else { echo "error "; } ?> The example above shows how to check if the data before the encryption is the same as the data after the decryption. It is very important to reinitialize the encryption buffer with mcrypt_generic_init(3) before you try to decrypt the data. The decryption handle should always be initialized with mcrypt_generic_init(3) with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling mcrypt_generic_deinit(3). See mcrypt_module_open(3) for an exam- ple. SEE ALSO
mcrypt_generic(3), mcrypt_generic_init(3), mcrypt_generic_deinit(3). PHP Documentation Group MDECRYPT_GENERIC(3)
Man Page