Esta extensión proporciona funciones que pueden ser utilizadas para el tratamiento directo o incremental de mensajes de longitud arbitraria utilizando una variedad de algoritmos de hachado, incluyendo la generación de valores HMAC y derivaciones de claves incluyendo HKDF y PBKDF2.
Existen grosso modo tres categorías de algoritmos de hachado, y una lista completa de los algoritmos puede ser encontrada en la documentación para hash_algos().
"crc32b"
o "adler32"
) :
Estos son utilizados para calcular sumas de control, útiles en situaciones tales como
la detección de errores de transmisión. Son frecuentemente muy rápidos. Estos
algoritmos generan frecuentemente valores fácilmente "adivinables" o pueden ser manipulados
para crear colisiones, por lo que son totalmente inadecuados para un uso criptográfico.
Algunos de los primeros algoritmos criptográficos, tales como "md4"
,
"md5"
, y "sha1"
, se han demostrado
ser sujetos a ataques por colisión y generalmente se recomienda no utilizarlos más
para aplicaciones criptográficas.
Ver también la FAQ sobre el hachado seguro de contraseñas para información sobre las mejores prácticas de utilización de las funciones de hachado en la gestión de contraseñas.