Files
Leonardo Lara Rodrigues 15a02130de sync with en rev
2025-07-30 17:08:03 -03:00

100 lines
4.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: a19139232af73a3c2054fcf5a687640ade63a393 Maintainer: leonardolara Status: ready --><!-- CREDITS: fernandowobeto,leonardolara -->
<book xml:id="book.hash" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" annotations="interactive">
<?phpdoc extension-membership="core" ?>
<title>Estrutura de resumo de mensagens Hash</title>
<titleabbrev>Hash</titleabbrev>
<!-- {{{ preface -->
<preface xml:id="intro.hash">
&reftitle.intro;
<para>
Esta extensão fornece funções que podem ser usadas para processamento
direto ou incremental de mensagens de comprimento arbitrário usando uma variedade de
algortimos de hash, incluindo a geração de valores <acronym>HMAC</acronym>
e derivações chave, incluindo <acronym>HKDF</acronym> e
<acronym>PBKDF2</acronym>.
</para>
<para>
De forma geral, existem três categorias de algoritmos de hash. Uma lista completa de
algoritmos pode ser encontrada na documentação da função <function>hash_algos</function>.
<itemizedlist>
<listitem>
<simpara>
Algoritmos de soma de verificação (como <literal>"crc32b"</literal> ou <literal>"adler32"</literal>):
Estes são usados para calcular somas de verificação, úteis em situações em que
erros de transmissão precisam ser detectados. São geralmente muito rápidos. Estes
algoritmos frequentemente geram valores que facilmente "previsíveis" ou podem ser manipulados
para criar colisões, portanto são totalmente inadequados para uso em criptografia.
</simpara>
</listitem>
<listitem>
<simpara>
Algoritmos não criptográficos (como a família xxHash):
Estes são frequentemente usados para calcular valores de hash para tabelas de hash, já que são
projetados para gerar uma boa distribuição sobre strings de entrada arbitrárias.
Também são geralmente rápidos, mas também inadequados para uso em criptografia.
</simpara>
</listitem>
<listitem>
<simpara>
Algoritmos criptográficos (como a família SHA-2):
Estes são projetados para gerar valores de hash que são representativos de suas
entradas mas não são previsíveis e nem sujeitos a colisões. O desempenho geralmente
é uma preocupação secundária, mas os equipamentos modernos frequentemente suportam um gerenciamento especial
para estes algoritmos que o PHP tenta fazer uso quando disponível.
</simpara>
<simpara>
O Centro de Recursos de Segurança Computacional do <acronym>NIST</acronym> tem uma
<link xlink:href="&url.hash.nist-hash-functions;">explicação dos algoritmos
atualmente aprovados pelos padrões de processamento de informação dos Estados
Unidos</link>.
</simpara>
<caution>
<para>
Já foi provado que alguns dos primeiros algoritmos criptográficos, tais como <literal>"md4"</literal>,
<literal>"md5"</literal> e <literal>"sha1"</literal>,
estão sujeiros a ataques de colisão e por isso é recomendado que não
sejam mais usados para aplicações de criptografia.
</para>
</caution>
</listitem>
</itemizedlist>
</para>
<para>
Consulte também as <link linkend="faq.passwords">Perguntas Frequentes sobre Hash Seguro de Senhas</link>
para informação sobre melhores práticas para o uso de funções de hash ao lidar
com senhas.
</para>
</preface>
<!-- }}} -->
&reference.hash.setup;
&reference.hash.constants;
&reference.hash.hashcontext;
&reference.hash.reference;
</book>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->