<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Encryption Filters</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="Manual do PHP" HREF="index.html"><LINK REL="UP" TITLE="Lista de Filtros Disponíveis" HREF="filters.html"><LINK REL="PREVIOUS" TITLE="Filtros de Compressão" HREF="filters.compression.html"><LINK REL="NEXT" TITLE="Lista de Transportes via Socket Suportados" HREF="transports.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="section" 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 do PHP</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="filters.compression.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Apêndice O. Lista de Filtros Disponíveis</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="transports.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="filters.encryption" >Encryption Filters</A ></H1 ><P > Os filtros <TT CLASS="literal" >mcrypt.*</TT > e <TT CLASS="literal" >mdecrypt.*</TT > permitem criptografar e descriptografar usando libmcrypt. Ambos os conjuntos de filtros suportam os mesmos algoritmos disponíveis na <A HREF="ref.mcrypt.html" >extensão mcrypt</A > na forma de <TT CLASS="literal" >mcrypt.ciphername</TT > onde <CODE CLASS="parameter" >ciphername</CODE > é o nome da cifra como seria passada para <A HREF="function.mcrypt-module-open.html" ><B CLASS="function" >mcrypt_module_open()</B ></A >. Os cinco filtros a seguir estão disponíveis: </P ><P > <DIV CLASS="table" ><A NAME="AEN289436" ></A ><P ><B >Tabela O-1. parâmetros para os filtros mcrypt</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL><COL><COL><COL><THEAD ><TR ><TH >Parâmetro</TH ><TH >É Necessário?</TH ><TH >Valor Padrão</TH ><TH >Exemplos de Valores</TH ></TR ></THEAD ><TBODY ><TR ><TD >Modo</TD ><TD >Opcional</TD ><TD >cbc</TD ><TD >cbc, cfb, ecb, nofb, ofb, stream</TD ></TR ><TR ><TD >algorithms_dir</TD ><TD >Opcional</TD ><TD >ini_get('mcrypt.algorithms_dir')</TD ><TD >Localização do módulos de algoritmos</TD ></TR ><TR ><TD >modes_dir</TD ><TD >Opcional</TD ><TD >ini_get('mcrypt.modes_dir')</TD ><TD >Localização do módulos de modos</TD ></TR ><TR ><TD >iv</TD ><TD >Necessário</TD ><TD >N/A</TD ><TD >Tipicamente 8, 16, or 32 bytes de dados binários. Dependa da cifra.</TD ></TR ><TR ><TD >key</TD ><TD >Necessário</TD ><TD >N/A</TD ><TD >Tipicamente 8, 16, or 32 bytes de dados binários. Dependa da cifra.</TD ></TR ></TBODY ></TABLE ></DIV > </P ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN289471" ></A ><P ><B >Exemplo O-10. Criptografando saída de arquivo usando 3DES</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /> $passphrase </font><font color="#007700">= </font><font color="#DD0000">'My secret'</font><font color="#007700">;<br /><br /> </font><font color="#FF8000">/* Turn a human readable passphrase<br /> * into a reproducable iv/key pair<br /> */<br /> </font><font color="#0000BB">$iv </font><font color="#007700">= </font><font color="#0000BB">substr</font><font color="#007700">(</font><font color="#0000BB">md5</font><font color="#007700">(</font><font color="#DD0000">'iv'</font><font color="#007700">.</font><font color="#0000BB">$passphrase</font><font color="#007700">, </font><font color="#0000BB">true</font><font color="#007700">), </font><font color="#0000BB">0</font><font color="#007700">, </font><font color="#0000BB">8</font><font color="#007700">);<br /> </font><font color="#0000BB">$key </font><font color="#007700">= </font><font color="#0000BB">substr</font><font color="#007700">(</font><font color="#0000BB">md5</font><font color="#007700">(</font><font color="#DD0000">'pass1'</font><font color="#007700">.</font><font color="#0000BB">$passphrase</font><font color="#007700">, </font><font color="#0000BB">true</font><font color="#007700">) .<br /> </font><font color="#0000BB">md5</font><font color="#007700">(</font><font color="#DD0000">'pass2'</font><font color="#007700">.</font><font color="#0000BB">$passphrase</font><font color="#007700">, </font><font color="#0000BB">true</font><font color="#007700">), </font><font color="#0000BB">0</font><font color="#007700">, </font><font color="#0000BB">24</font><font color="#007700">);<br /> </font><font color="#0000BB">$opts </font><font color="#007700">= array(</font><font color="#DD0000">'iv'</font><font color="#007700">=></font><font color="#0000BB">$iv</font><font color="#007700">, </font><font color="#DD0000">'key'</font><font color="#007700">=></font><font color="#0000BB">$key</font><font color="#007700">);<br /><br /> </font><font color="#0000BB">$fp </font><font color="#007700">= </font><font color="#0000BB">fopen</font><font color="#007700">(</font><font color="#DD0000">'secert-file.enc'</font><font color="#007700">, </font><font color="#DD0000">'wb'</font><font color="#007700">);<br /> </font><font color="#0000BB">stream_filter_append</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">, </font><font color="#DD0000">'mcrypt.tripledes'</font><font color="#007700">, </font><font color="#0000BB">STREAM_FILTER_WRITE</font><font color="#007700">, </font><font color="#0000BB">$opts</font><font color="#007700">);<br /> </font><font color="#0000BB">fwrite</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">, </font><font color="#DD0000">'Secret secret secret data'</font><font color="#007700">);<br /> </font><font color="#0000BB">fclose</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">);<br /> </font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN289474" ></A ><P ><B >Exemplo O-11. Lendo um arquivo criptografado</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /> $passphrase </font><font color="#007700">= </font><font color="#DD0000">'My secret'</font><font color="#007700">;<br /><br /> </font><font color="#FF8000">/* Turn a human readable passphrase<br /> * into a reproducable iv/key pair<br /> */<br /> </font><font color="#0000BB">$iv </font><font color="#007700">= </font><font color="#0000BB">substr</font><font color="#007700">(</font><font color="#0000BB">md5</font><font color="#007700">(</font><font color="#DD0000">'iv'</font><font color="#007700">.</font><font color="#0000BB">$passphrase</font><font color="#007700">, </font><font color="#0000BB">true</font><font color="#007700">), </font><font color="#0000BB">0</font><font color="#007700">, </font><font color="#0000BB">8</font><font color="#007700">);<br /> </font><font color="#0000BB">$key </font><font color="#007700">= </font><font color="#0000BB">substr</font><font color="#007700">(</font><font color="#0000BB">md5</font><font color="#007700">(</font><font color="#DD0000">'pass1'</font><font color="#007700">.</font><font color="#0000BB">$passphrase</font><font color="#007700">, </font><font color="#0000BB">true</font><font color="#007700">) .<br /> </font><font color="#0000BB">md5</font><font color="#007700">(</font><font color="#DD0000">'pass2'</font><font color="#007700">.</font><font color="#0000BB">$passphrase</font><font color="#007700">, </font><font color="#0000BB">true</font><font color="#007700">), </font><font color="#0000BB">0</font><font color="#007700">, </font><font color="#0000BB">24</font><font color="#007700">);<br /> </font><font color="#0000BB">$opts </font><font color="#007700">= array(</font><font color="#DD0000">'iv'</font><font color="#007700">=></font><font color="#0000BB">$iv</font><font color="#007700">, </font><font color="#DD0000">'key'</font><font color="#007700">=></font><font color="#0000BB">$key</font><font color="#007700">);<br /><br /> </font><font color="#0000BB">$fp </font><font color="#007700">= </font><font color="#0000BB">fopen</font><font color="#007700">(</font><font color="#DD0000">'secert-file.enc'</font><font color="#007700">, </font><font color="#DD0000">'rb'</font><font color="#007700">);<br /> </font><font color="#0000BB">stream_filter_append</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">, </font><font color="#DD0000">'mdecrypt.tripledes'</font><font color="#007700">, </font><font color="#0000BB">STREAM_FILTER_WRITE</font><font color="#007700">, </font><font color="#0000BB">$opts</font><font color="#007700">);<br /> </font><font color="#0000BB">$data </font><font color="#007700">= </font><font color="#0000BB">rtrim</font><font color="#007700">(</font><font color="#0000BB">stream_get_contents</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">));<br /> </font><font color="#0000BB">fclose</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">);<br /><br /> echo </font><font color="#0000BB">$data</font><font color="#007700">;<br /> </font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></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="filters.compression.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Principal</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="transports.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Filtros de Compressão</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="filters.html" ACCESSKEY="U" >Acima</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Lista de Transportes via Socket Suportados</TD ></TR ></TABLE ></DIV ></BODY ></HTML >