<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/refs.crypto.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'book.hash.php',
    1 => 'Hash',
    2 => 'Estrutura de resumo de mensagens Hash',
  ),
  'up' => 
  array (
    0 => 'refs.crypto.php',
    1 => 'Extens&otilde;es para Criptografia',
  ),
  'prev' => 
  array (
    0 => 'refs.crypto.php',
    1 => 'Extens&otilde;es para Criptografia',
  ),
  'next' => 
  array (
    0 => 'hash.setup.php',
    1 => 'Instala&ccedil;&atilde;o/Configura&ccedil;&atilde;o',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'reference/hash/book.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/book.hash.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="book.hash" class="book">
 
 <h1 class="title">Estrutura de resumo de mensagens Hash</h1>
 

 
 <div id="intro.hash" class="preface">
  <h1 class="title">Introdução</h1>
  <p class="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 <abbr title="Hash-based Message Authentication Code">HMAC</abbr>
   e derivações chave, incluindo <abbr title="HMAC Key Definition Function">HKDF</abbr> e
   <abbr title="Password-Based Key Derivation Function 2">PBKDF2</abbr>.
  </p>
  <p class="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 <span class="function"><a href="function.hash-algos.php" class="function">hash_algos()</a></span>.

   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">
      Algoritmos de soma de verificação (como <code class="literal">&quot;crc32b&quot;</code> ou <code class="literal">&quot;adler32&quot;</code>):
      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 &quot;previsíveis&quot; ou podem ser manipulados
      para criar colisões, portanto são totalmente inadequados para uso em criptografia.
     </span>
    </li>
    <li class="listitem">
     <span class="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.
     </span>
    </li>
    <li class="listitem">
     <span class="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.
     </span>
     <span class="simpara">
      O Centro de Recursos de Segurança Computacional do <abbr>NIST</abbr> tem uma
      <a href="https://csrc.nist.gov/projects/hash-functions" class="link external">&raquo;&nbsp;explicação dos algoritmos
      atualmente aprovados pelos padrões de processamento de informação dos Estados
      Unidos</a>.
     </span>
     <div class="caution"><strong class="caution">Cuidado</strong>
      <p class="para">
       Já foi provado que alguns dos primeiros algoritmos criptográficos, tais como <code class="literal">&quot;md4&quot;</code>,
       <code class="literal">&quot;md5&quot;</code> e <code class="literal">&quot;sha1&quot;</code>,
       estão sujeiros a ataques de colisão e por isso é recomendado que não
       sejam mais usados para aplicações de criptografia.
      </p>
     </div>
    </li>
   </ul>
  </p>

  <p class="para">
   Consulte também as <a href="faq.passwords.php" class="link">Perguntas Frequentes sobre Hash Seguro de Senhas</a>
   para informação sobre melhores práticas para o uso de funções de hash ao lidar
   com senhas.
  </p>
 </div>
 

 







 




 




 







<ul class="chunklist chunklist_book"><li><a href="hash.setup.php">Instala&ccedil;&atilde;o/Configura&ccedil;&atilde;o</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="hash.installation.php">Instala&ccedil;&atilde;o</a></li><li><a href="hash.resources.php">Tipos de Recurso</a></li></ul></li><li><a href="hash.constants.php">Constantes predefinidas</a></li><li><a href="class.hashcontext.php">HashContext</a> — The HashContext class<ul class="chunklist chunklist_book chunklist_children"><li><a href="hashcontext.construct.php">HashContext::__construct</a> — Construtor privado para impedir instancia&ccedil;&atilde;o direta</li><li><a href="hashcontext.serialize.php">HashContext::__serialize</a> — Serializa o objeto HashContext</li><li><a href="hashcontext.unserialize.php">HashContext::__unserialize</a> — Desserializa o par&acirc;metro data em um objeto HashContext</li></ul></li><li><a href="ref.hash.php">Hash Fun&ccedil;&otilde;es</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="function.hash.php">hash</a> — Gera um valor hash (resumo da mensagem)</li><li><a href="function.hash-algos.php">hash_algos</a> — Retorna uma lista de algoritmos de hash registrados</li><li><a href="function.hash-copy.php">hash_copy</a> — Copia contexto de hash</li><li><a href="function.hash-equals.php">hash_equals</a> — Compara&ccedil;&atilde;o de strings segura para ataque de temporiza&ccedil;&atilde;o</li><li><a href="function.hash-file.php">hash_file</a> — Gera um valor hash usando o conte&uacute;do de um arquivo fornecido</li><li><a href="function.hash-final.php">hash_final</a> — Finaliza um hash incremental e retorna o resumo resultante</li><li><a href="function.hash-hkdf.php">hash_hkdf</a> — Gera uma deriva&ccedil;&atilde;o de chave HKDF de uma entrada de chave fornecida</li><li><a href="function.hash-hmac.php">hash_hmac</a> — Gera um valor de hash com chave usando o m&eacute;todo HMAC</li><li><a href="function.hash-hmac-algos.php">hash_hmac_algos</a> — Retorna uma lista de algoritmos de hash registrados adequados para hash_hmac</li><li><a href="function.hash-hmac-file.php">hash_hmac_file</a> — Gera um valor hash com chave usando o m&eacute;todo HMAC e o conte&uacute;do de um arquivo fornecido</li><li><a href="function.hash-init.php">hash_init</a> — Inicializa um contexto de hash incremental</li><li><a href="function.hash-pbkdf2.php">hash_pbkdf2</a> — Gera uma deriva&ccedil;&atilde;o de chave PBKDF2 de uma senha fornecida</li><li><a href="function.hash-update.php">hash_update</a> — Injeta dados em um contexto de hash ativo</li><li><a href="function.hash-update-file.php">hash_update_file</a> — Injeta dados em um contexto de hash ativo a partir de um arquivo</li><li><a href="function.hash-update-stream.php">hash_update_stream</a> — Injeta dados em um contexto de hash ativo a partir de um fluxo</li></ul></li></ul></div><?php manual_footer($setup); ?>