HASH (framework de resúmenes de mensaje)
Introducción
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 HMAC
y derivaciones de claves incluyendo HKDF y
PBKDF2.
Existen aproximadamente tres categorías de algoritmos de hash, y una lista completa de
algoritmos puede encontrarse en la documentación de hash_algos().
-
Algoritmos de suma de verificación (como
"crc32b" o "adler32"):
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 "adivinables" o pueden ser manipulados
para crear colisiones, por lo que son completamente inadecuados para uso criptográfico.
-
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.
-
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.
El Centro de Recursos de Seguridad Informática del NIST tiene
» una explicación de los algoritmos
actualmente aprobados por los Estándares Federales de Procesamiento de Información
de los Estados Unidos.
Precaución
Algunos de los primeros algoritmos criptográficos, como "md4",
"md5" y "sha1", han demostrado
ser propensos a ataques de colisión y generalmente se recomienda no
utilizarlos más para aplicaciones criptográficas.
Consulte también las preguntas frecuentes sobre el Hashing Seguro de Contraseñas
para obtener información sobre las mejores prácticas para el uso de funciones hash en el manejo
de contraseñas.
- Instalación/Configuración
- Constantes predefinidas
- HashContext — La clase HashContext
- Funciones de hash
- hash — Genera un valor de hachado (huella digital)
- hash_algos — Devuelve una lista de los algoritmos de hash registrados
- hash_copy — Copia un contexto de hachado
- hash_equals — Comparación de strings resistente a ataques temporales
- hash_file — Genera un valor de hash utilizando el contenido de un fichero dado
- hash_final — Finaliza un hachaje incremental y devuelve el resultado de la huella digital
- hash_hkdf — Genera una derivación de clave HKDF a partir de una clave de entrada proporcionada
- hash_hmac — Genera un valor de clave de hash utilizando el método HMAC
- hash_hmac_algos — Devuelve una lista de algoritmos de hash registrados adecuados para hash_hmac
- hash_hmac_file — Genera un valor de clave de hash utilizando el método HMAC y el contenido de un fichero dado
- hash_init — Inicializa un contexto de hachado incremental
- hash_pbkdf2 — Genera una clave PBKDF2 derivada de la contraseña proporcionada
- hash_update — Añade datos en el contexto de hash activo
- hash_update_file — Se añaden datos en un contexto de hash activo a partir de un fichero
- hash_update_stream — Introduce datos en un contexto de hash activo desde un flujo abierto
There are no user contributed notes for this page.