¿Qué significa código hash?
El código hash en .NET framework es un valor numérico que ayuda en la identificación de un objeto durante la prueba de igualdad y también puede servir como un índice para el objeto.
El valor contenido en el código hash no es de naturaleza permanente.
El propósito del código hash es ayudar en la búsqueda eficiente y la inserción en las colecciones de datos que se basan en una tabla hash.
Definición de código hash
Dos objetos se consideran iguales si devuelven códigos hash iguales. Sin embargo, la coincidencia de los códigos hash resultantes no significa necesariamente la igualdad del objeto, o en otras palabras, lo contrario no es cierto.
Por este motivo, el código hash nunca debe utilizarse fuera de los límites del dominio de la aplicación, ya que el mismo objeto podría tener valores diferentes fuera del dominio, los procesos o las plataformas.
Como el valor en código hash es temporal por naturaleza, nunca debe ser utilizado como clave para la recuperación de datos de una colección de datos con clave y nunca debe ser serializado o almacenado en bases de datos.
El método GetHashCode se utiliza en .NET framework para obtener el código hash. Es adecuado para algoritmos hash o para estructuras de datos como tablas hash.
El valor devuelto por la función podría diferir entre las distintas versiones de .NET framework. Como tal, el framework no aprueba la implementación por defecto del método, por lo que no debe utilizarse para encontrar el identificador único de objeto en el caso de propósitos de hashing.
El código hash puede ayudar en tareas de comparación de datos. También puede ayudar en el cifrado unidireccional, ya que el valor numérico generado no puede ser rastreado hasta los datos del mensaje original.