El valor hash es el resultado que genera o produce una función hash, y al proceso empleado para obtener un hash también se le suele llamar hacer hashing, es decir, que tras aplicar una función hash a un texto o archivo obtendrás como resultado un valor hash, la función hash realmente se trata de un algoritmo donde transformo un texto, un dato o un fichero de entrada, en una serie de caracteres alfanuméricos como esto: 0x29969FB63dE7D47f001d639d2Fe346d1289e1545.
Características que definen un HASH
1. Transformar una serie de datos de entrada, independientemente del tamaño y del formato de estos datos en una serie de caracteres alfanuméricos de una longitud fija, la longitud del valor hash tiene diferentes tamaños según la función hash empleada, pero para una misma función, el tamaño del valor resultante siempre es el mismo, independientemente del texto o fichero de entrada que estés introduciendo a la función.
Se han ido desarrollándose varios algoritmos matemáticos con el tiempo, de ahí que existan varias funciones hash, cada una con su propio algoritmo matemático. Ejemplos de funciones hash:
- SHA-1
- SHA-2
- SHA-224
- SHA-256
- MD5
- BLOWFISH
2. Esta segunda característica lo que destaca es que una vez que obtienes el valor, hash de un texto o archivo, no puedes volver atrás, es decir, partiendo de un valor hash no puedes obtener el texto o el archivo original, esta es la principal diferencia del proceso de encriptación de un texto con respecto del proceso de aplicar una función hash, partiendo de un texto encriptado mediante una función de encriptación si puedes volver a obtener el texto original en claro con la clave de desencriptado adecuada, pero partiendo de un valor hash, no puedes desencriptar, por así decirlo, el valor hash, para obtener el texto en inicial, los datos o los archivos originales, es decir, que es un proceso de un único sentido.
3. Utilizando una misma función hash ante un texto de entrada, obtendremos su valor, pero si ese texto de entrada le modificamos algo por mínimo que sea, como por ejemplo cambiar una vocal sin tilde por una misma vocal con tilde, el valor resultante será completamente diferente, misma longitud empleando una misma función hash, pero, caracteres de salida completamente diferentes a pesar de haber cambiado una única vocal en la entrada.
Aplicaciones de una función HASH
- Primero en los sistemas de acceso por contraseña, como ocurre con ciertos entornos software en sistemas operativos, servicios, internet en servicios, etc
- Otro uso del hash sería para asegurarnos de la integridad de datos transmitidos, es decir, para asegurarnos que nadie ha alterado el texto, documento o archivo que se está transmitiendo de un lugar a otro
- Evitar la piratería ya que cada archivo o producto tendría su propio código o hash
- Firma digital, facturas, correos, para verificar la integridad del documento
- Antivirus, dejando en lista negra archivos maliciosos