<?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 => 'es',
  ),
  'this' => 
  array (
    0 => 'book.hash.php',
    1 => 'Hash',
    2 => 'HASH Message Digest Framework',
  ),
  'up' => 
  array (
    0 => 'refs.crypto.php',
    1 => 'Extensiones criptogr&aacute;ficas',
  ),
  'prev' => 
  array (
    0 => 'refs.crypto.php',
    1 => 'Extensiones criptogr&aacute;ficas',
  ),
  'next' => 
  array (
    0 => 'hash.setup.php',
    1 => 'Instalaci&oacute;n/Configuraci&oacute;n',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    '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">HASH Message Digest Framework</h1>
 

 
 <div id="intro.hash" class="preface">
  <h1 class="title">Introducción</h1>
  <p class="para">
   Esta extensión proporciona funciones que pueden usarse para el procesamiento directo o
   incremental de mensajes de longitud arbitraria utilizando una variedad de
   algoritmos de hash, incluyendo la generación de valores <abbr title="Hash-based Message Authentication Code">HMAC</abbr>
   y derivaciones de claves incluyendo <abbr title="HMAC Key Definition Function">HKDF</abbr> y
   <abbr title="Password-Based Key Derivation Function 2">PBKDF2</abbr>.
  </p>
  <p class="para">
   Existen aproximadamente tres categorías de algoritmos de hash, y una lista completa de
   algoritmos puede encontrarse en la documentación de <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 suma de verificación (como <code class="literal">&quot;crc32b&quot;</code> o <code class="literal">&quot;adler32&quot;</code>):
      Estos se utilizan para calcular sumas de verificación, útiles en situaciones como cuando
      se deben detectar errores de transmisión. Suelen ser muy rápidos. Estos
      algoritmos a menudo generan valores que son fácilmente &quot;adivinables&quot; o pueden ser manipulados
      para crear colisiones, por lo que son completamente inadecuados para uso criptográfico.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Algoritmos no criptográficos (como la familia xxHash):
      Estos se utilizan a menudo para calcular valores hash para tablas hash, ya que están
      diseñados para ofrecer una buena distribución sobre entradas de string arbitrarias. También
      suelen ser rápidos, pero no son adecuados para uso criptográfico.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Algoritmos criptográficos (como la familia SHA-2):
      Estos están diseñados para generar valores hash que sean representativos de sus
      entradas pero que no sean adivinables ni propensos a colisiones. El rendimiento suele
      ser una preocupación secundaria, pero el hardware moderno a menudo admite un manejo especial
      para estos algoritmos que PHP intenta utilizar cuando está disponible.
     </span>
     <span class="simpara">
      El Centro de Recursos de Seguridad Informática del <abbr>NIST</abbr> tiene
      <a href="https://csrc.nist.gov/projects/hash-functions" class="link external">&raquo;&nbsp;una explicación de los algoritmos
      actualmente aprobados por los Estándares Federales de Procesamiento de Información
      de los Estados Unidos</a>.
     </span>
     <div class="caution"><strong class="caution">Precaución</strong>
      <p class="para">
       Algunos de los primeros algoritmos criptográficos, como <code class="literal">&quot;md4&quot;</code>,
       <code class="literal">&quot;md5&quot;</code> y <code class="literal">&quot;sha1&quot;</code>, han demostrado
       ser propensos a ataques de colisión y generalmente se recomienda no
       utilizarlos más para aplicaciones criptográficas.
      </p>
     </div>
    </li>
   </ul>
  </p>

  <p class="para">
   Consulte también las <a href="faq.passwords.php" class="link">preguntas frecuentes sobre el Hashing Seguro de Contraseñas</a>
   para obtener información sobre las mejores prácticas para el uso de funciones hash en el manejo
   de contraseñas.
  </p>
 </div>
 

 






 








 






 








<ul class="chunklist chunklist_book"><li><a href="hash.setup.php">Instalaci&oacute;n/Configuraci&oacute;n</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="hash.installation.php">Instalaci&oacute;n</a></li><li><a href="hash.resources.php">Tipos de recursos</a></li></ul></li><li><a href="hash.constants.php">Constantes predefinidas</a></li><li><a href="class.hashcontext.php">HashContext</a> — La clase HashContext<ul class="chunklist chunklist_book chunklist_children"><li><a href="hashcontext.construct.php">HashContext::__construct</a> — Constructor privado para prohibir la instanciaci&oacute;n directa</li><li><a href="hashcontext.serialize.php">HashContext::__serialize</a> — Serializa el objeto HashContext</li><li><a href="hashcontext.unserialize.php">HashContext::__unserialize</a> — Deserializa el par&aacute;metro data en un objeto HashContext</li></ul></li><li><a href="ref.hash.php">Funciones de hash</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="function.hash.php">hash</a> — Genera un valor de hachado (huella digital)</li><li><a href="function.hash-algos.php">hash_algos</a> — Devuelve una lista de los algoritmos de hash registrados</li><li><a href="function.hash-copy.php">hash_copy</a> — Copia un contexto de hachado</li><li><a href="function.hash-equals.php">hash_equals</a> — Comparaci&oacute;n de strings resistente a ataques temporales</li><li><a href="function.hash-file.php">hash_file</a> — Genera un valor de hash utilizando el contenido de un fichero dado</li><li><a href="function.hash-final.php">hash_final</a> — Finaliza un hachaje incremental y devuelve el resultado de la huella digital</li><li><a href="function.hash-hkdf.php">hash_hkdf</a> — Genera una derivaci&oacute;n de clave HKDF a partir de una clave de entrada proporcionada</li><li><a href="function.hash-hmac.php">hash_hmac</a> — Genera un valor de clave de hash utilizando el m&eacute;todo HMAC</li><li><a href="function.hash-hmac-algos.php">hash_hmac_algos</a> — Devuelve una lista de algoritmos de hash registrados adecuados para hash_hmac</li><li><a href="function.hash-hmac-file.php">hash_hmac_file</a> — Genera un valor de clave de hash utilizando el m&eacute;todo HMAC y el contenido de un fichero dado</li><li><a href="function.hash-init.php">hash_init</a> — Inicializa un contexto de hachado incremental</li><li><a href="function.hash-pbkdf2.php">hash_pbkdf2</a> — Genera una clave PBKDF2 derivada de la contrase&ntilde;a proporcionada</li><li><a href="function.hash-update.php">hash_update</a> — A&ntilde;ade datos en el contexto de hash activo</li><li><a href="function.hash-update-file.php">hash_update_file</a> — Se a&ntilde;aden datos en un contexto de hash activo a partir de un fichero</li><li><a href="function.hash-update-stream.php">hash_update_stream</a> — Introduce datos en un contexto de hash activo desde un flujo abierto</li></ul></li></ul></div><?php manual_footer($setup); ?>