Se dice que las tablas hash son la forma más rápida/mejor de almacenar/recuperar datos.¿Cómo escribir una función hash en C?
Mi comprensión de una tabla hash, hash es el siguiente (Por favor, corríjanme si estoy equivocado o por favor agregue Si hay algo más):
- Una tabla Hash no es más que una matriz (simple o multidimensional) para almacenar valores.
- Hashing es el proceso para encontrar el índice/ubicación en la matriz para insertar/recuperar los datos. Usted toma un elemento (s) de datos y lo pasa como una clave (s) a una función hash y obtendrá el índice/ubicación donde insertar/recuperar los datos.
Tengo una pregunta:
es la función hash utilizado para almacenar/recuperar los datos distintas de una función hash criptográfica utilizado en aplicaciones de seguridad para la autenticación como MD5, HMAC, SHA-1, etc. ..?
¿En qué forma (s) son diferentes?
- Cómo escribir una función hash en C?
- ¿Hay algún estándar o pautas para ello?
- ¿Cómo nos aseguramos de que la salida de una función hash, es decir, el índice no está fuera de rango?
Sería grandioso si pudiera mencionar algunos buenos enlaces para entenderlos mejor.
El rango se puede limitar con el operador del módulo (%). – tur1ng
La siguiente página tiene varias implementaciones de funciones hash de propósito general implementadas en C (y en muchos otros idiomas): http://partow.net/programming/hashfunctions/index.html –