<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >crypt</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="String" HREF="ref.strings.html"><LINK REL="PREVIOUS" TITLE="crc32" HREF="function.crc32.html"><LINK REL="NEXT" TITLE="echo" HREF="function.echo.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></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 do PHP</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.crc32.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.echo.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.crypt" ></A >crypt</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN218852" ></A ><P > (PHP 3, PHP 4, PHP 5)</P >crypt -- Único caminho de codificação de string (hashing)</DIV ><DIV CLASS="refsect1" ><A NAME="AEN218855" ></A ><H2 >Descrição</H2 >string <B CLASS="methodname" >crypt</B > ( string str [, string salt] )<BR ></BR ><P > <B CLASS="function" >crypt()</B > retornará uma string criptografada usando o algoritmo de encriptação Unix Standard <ABBR CLASS="abbrev" >DES</ABBR >-based ou ou algoritmos alternativos disponíveis no sistema. Os argumentos são uma string para ser criptografada e uma string opcional para basear em qual encriptação está. Veja a página de encriptação Unix para mais informação. </P ><P > Se o argumento salt não é fornecido, um argumento aleatório será gerado pelo PHP. </P ><P > Alguns SO suportam mais de um tipo de codificação. De fato, algumas vezes a codificação Standard DES-based é substituído por MD5-based . O tipo de codificação é definido pelo argumento salt. Na instalação, o PHP determina as possíveis funções de codificação e aceitará salts para outros tipos. Se nenhum salt é fornecido, o PHP auto-gera um salt padrão de 2 caracateres por definição, a menos que o tipo de codificação padrão do sistema seja MD5, nesse caso um salt MD5-compatible aleatório será gerado. O PHP define uma constante com nome CRYPT_SALT_LENGTH que dirá se um salt de 2 caracteres aplica-se ao seu sistema ou se o salt mais comprido de 12 caracteres é aplicavél. </P ><P > Se você está usando um salt fornecido, você está ciente que o salt é gerado uma vez. Se você está chamando essa função repetidamente, isto pode afetar a aparência e a segurança. </P ><P > O Standard DES-based <B CLASS="function" >crypt()</B > retorna o salt como o primeiro two characters da saída. Ele também usa apenas os oito primeiros caracteres da <CODE CLASS="parameter" >str</CODE >, então strings longas que começam com os mesmos oito caracteres gerarão o mesmo resultado (quando o mesmo salt é usado). </P ><P > Em sistemas onde a função crypt() suporta variados tipos de codificação, as seguintes funções são definidas para 0 ou 1 a depender se um dado tipo está disponível: </P ><P ></P ><UL ><LI ><P > CRYPT_STD_DES - Codificação Standard DES-based com um salt de 2 caracteres </P ></LI ><LI ><P > CRYPT_EXT_DES - Codificação Extended DES-based com um salt de 9 caracateres </P ></LI ><LI ><P > CRYPT_MD5 - Codificação MD5 com um salt de 12 caracteres começando com $1$ </P ></LI ><LI ><P > CRYPT_BLOWFISH - Codificação Blowfish com um salt de 16 caracteres começando com $2$ </P ></LI ></UL ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > Não há função de decodificação, desde que <B CLASS="function" >crypt()</B > utiliza uma algorimo de um só caminho. </P ></BLOCKQUOTE ></DIV ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN218888" ></A ><P ><B >Exemplo 1. <B CLASS="function" >crypt()</B > exemplos</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br />$password </font><font color="#007700">= </font><font color="#0000BB">crypt</font><font color="#007700">(</font><font color="#DD0000">"My1sTpassword"</font><font color="#007700">); </font><font color="#FF8000">// let salt be generated <br /><br /># You should pass the entire results of crypt() as the salt for comparing a<br /># password, to avoid problems when different hashing algorithms are used. (As<br /># it says above, standard DES-based password hashing uses a 2-character salt,<br /># but MD5-based hashing uses 12.)<br /></font><font color="#007700">if (</font><font color="#0000BB">crypt</font><font color="#007700">(</font><font color="#0000BB">$user_input</font><font color="#007700">, </font><font color="#0000BB">$password</font><font color="#007700">) == </font><font color="#0000BB">$password</font><font color="#007700">) { <br /> echo </font><font color="#DD0000">"Password verified!"</font><font color="#007700">;<br />}<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ><P > Veja também <A HREF="function.md5.html" ><B CLASS="function" >md5()</B ></A > e <A HREF="ref.mcrypt.html" >a extensão Mcrypt</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.crc32.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="function.echo.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >crc32</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.strings.html" ACCESSKEY="U" >Acima</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >echo</TD ></TR ></TABLE ></DIV ></BODY ></HTML >