Syntax
string 
mcrypt_generic ( resource td, string data )
     This function encrypts data. The data is padded with "\0"
     to make sure the length of the data is n * blocksize. This
     function returns the encrypted data. Note that the length
     of the returned string can in fact be longer then the input,
     due to the padding of the data.
    
     If you want to store the encrypted data in a database make sure to store
     the entire string as returned by mcrypt_generic, or the string will not
     entirely decrypt properly.  If your original string is 10 characters long
     and the block size is 8 (use
     mcrypt_enc_get_block_size() to determine the
     blocksize), you would need at least 16 characters in your database field.
     Note the string returned by mdecrypt_generic() will be
     16 characters as well...use rtrim()($str, "\0") to
     remove the padding.
    
     If you are for example storing the data in a MySQL database remember that
     varchar fields automatically have trailing spaces removed during
     insertion. As encrypted data can end in a space (ASCII 32), the data will
     be damaged by this removal.  Store data in a tinyblob/tinytext (or
     larger) field instead.
    
     The encryption handle should always be initialized with
     mcrypt_generic_init() 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().
     See mcrypt_module_open() for an example.
    
     See also mdecrypt_generic(),
     mcrypt_generic_init(), and
     mcrypt_generic_deinit().