<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >mcrypt_generic</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="Manual PHP" HREF="index.html"><LINK REL="UP" TITLE="Mcrypt Encryption Functions" HREF="ref.mcrypt.html"><LINK REL="PREVIOUS" TITLE="mcrypt_generic_init" HREF="function.mcrypt-generic-init.html"><LINK REL="NEXT" TITLE="mcrypt_get_block_size" HREF="function.mcrypt-get-block-size.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-2"></HEAD ><BODY CLASS="refentry" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Manual PHP</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.mcrypt-generic-init.html" ACCESSKEY="P" >Înapoi</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.mcrypt-get-block-size.html" ACCESSKEY="N" >Înainte</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.mcrypt-generic" ></A >mcrypt_generic</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN55439" ></A ><P > (PHP 4 >= 4.0.2, PHP 5)</P >mcrypt_generic -- This function encrypts data</DIV ><DIV CLASS="refsect1" ><A NAME="AEN55442" ></A ><H2 >Description</H2 >string <B CLASS="methodname" >mcrypt_generic</B > ( resource td, string data)<BR ></BR ><P > This function encrypts data. The data is padded with "<VAR CLASS="literal" >\0</VAR >" 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. </P ><P > 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 <A HREF="function.mcrypt-enc-get-block-size.html" ><B CLASS="function" >mcrypt_enc_get_block_size()</B ></A > to determine the blocksize), you would need at least 16 characters in your database field. Note the string returned by <A HREF="function.mdecrypt-generic.html" ><B CLASS="function" >mdecrypt_generic()</B ></A > will be 16 characters as well...use <A HREF="function.rtrim.html" ><B CLASS="function" >rtrim()</B ></A >($str, "\0") to remove the padding. </P ><P > 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. </P ><P > The encryption handle should always be initialized with <A HREF="function.mcrypt-generic-init.html" ><B CLASS="function" >mcrypt_generic_init()</B ></A > with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling <A HREF="function.mcrypt-generic-deinit.html" ><B CLASS="function" >mcrypt_generic_deinit()</B ></A >. See <A HREF="function.mcrypt-module-open.html" ><B CLASS="function" >mcrypt_module_open()</B ></A > for an example. </P ><P > See also <A HREF="function.mdecrypt-generic.html" ><B CLASS="function" >mdecrypt_generic()</B ></A >, <A HREF="function.mcrypt-generic-init.html" ><B CLASS="function" >mcrypt_generic_init()</B ></A >, and <A HREF="function.mcrypt-generic-deinit.html" ><B CLASS="function" >mcrypt_generic_deinit()</B ></A >. </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="function.mcrypt-generic-init.html" ACCESSKEY="P" >Înapoi</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Acasã</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.mcrypt-get-block-size.html" ACCESSKEY="N" >Înainte</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >mcrypt_generic_init</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.mcrypt.html" ACCESSKEY="U" >Sus</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >mcrypt_get_block_size</TD ></TR ></TABLE ></DIV ></BODY ></HTML >