2010-09-27 7 views
19

De manera vergonzosa, elegir una función hash (por ejemplo, para cadenas hash, o conjuntos de enteros, etc.) sigue siendo mágica para mí: tome algunos números primos aquí, constantes mágicas, haga algunos cambios de bit, modulo algo, y listo.¿Hay un tutorial de función de hash suave?

¿Existe un tutorial agradable, amable y accesible sobre la creación de funciones hash?

Respuesta

3

Puede encontrar un tutorial de hash decente y fácil en Hash Table Tutorial (también se describen las funciones de hash). Tenga en cuenta que si realiza una búsqueda web, puede encontrar mucha información útil.

Wikipedia tiene información básica tanto en Hash Tables como en Hash Functions.

EDITAR

Una pregunta similar se le pidió con anterioridad: Which Hash Function Should I Choose. La pregunta y las respuestas son excelentes.

+5

la pregunta era sobre la función hash, no una tabla hash. – codymanix

+0

Gracias @codymanix, agregué una edición para evitar confusiones. –

+0

La página de función hash de Wikipedia está lejos de ser un buen tutorial. – Frank

12

Es curioso lo difícil que es encontrar una explicación básica de los algoritmos hash. Tal vez el tema es tan difícil que no es fácil hacer un tutorial básico. Yo estaba buscando uno y me encontré con el mismo problema.

Pero puedes probar esta página. Lo bueno de esto es que después de leer la página, en la parte inferior hay un cuadro de texto. Si agrega texto a esa casilla y envía el formulario, el resultado es una lista paso a paso de cómo hashecha el texto de entrada.

http://www.metamorphosite.com/one-way-hash-encryption-sha1-data-software

Buena suerte. Si encuentras algo mejor, sería realmente útil si lo publicaras aquí.

1

Encontré este enlace un poco útil. Se da una visión general básica pero no llega a un conocimiento profundo de las cosas tales como qué mejor momento, ¿por qué cambiar algo, etc ..

http://www.i-programmer.info/babbages-bag/479-hashing.html

Desde este enlace, resaltar alguna sección que dio una visión general

¿Qué hace que una buena función hash mayoría de las buenas funciones hash funcionan calculando el resto después de dividir por el tamaño de la tabla N.

Esto siempre da un valor entre 0 y N-1 por lo que es adecuado pero si N es un número primo entonces también es excelente para dispersar los datos en torno a la mesa. Por supuesto, si tiene un valor de texto que desea hash, primero debe convertirlo en un valor numérico adecuado y un esquema simple como el del ejemplo no funcionará.

Necesita generar un valor numérico diferente para cada valor de texto posible y no es posible agregar los códigos ASCII de las dos primeras letras. Un mejor método es ponderar cada uno de los códigos ASCII por la posición de la letra multiplicando por 1 para el primer carácter, 10 para el segundo, 100 para el tercero y así sucesivamente ... antes de sumarlos para dar un valor único.

En general, la construcción de una función hash muy buena es difícil y en la mayoría de los casos es necesario encontrar una que tenga buenas propiedades y haya sido probada.

+0

Publicar un enlace no es suficiente. Asegúrese de que su respuesta sea útil sin el enlace también, p. cita las partes relevantes de la página enlazada. Imagine lo que sucederá si ese enlace se rompe en el futuro. – juzraai

+1

Gracias. Lo tendré en cuenta He editado la respuesta para resaltar la parte que encontré útil. – toing

Cuestiones relacionadas