La tecnología relacionada e la seguridad web es uno de los pambitos más importantes y estudiados del desarrollo de software, pues la cantidad de información que se mueve cada día por la web es mucha. Por ello se han desarrollado métodos que aseguran la calidad cada vez más complejos y eficaces. Uno de los más utilizados es la función criptográfica hash, el cual es un algoritmo matemático que transforma cualquier bloque arbitrario de datos en una nueva serie de caracteres con una longitud fija. Independientemente de la longitud de los datos de entrada, el valor hash de salida tendrá siempre la misma longitud.
A partir de un hash o huella digital, no podemos recuperar el conjunto de datos originales. Los más conocidos son el MD5 y el SHA-1. Cifrar una huella digital se conoce como firma digital. Una función hash es un algoritmo matemático que nos da un resultado B al aplicarlo a un valor inicial A.
Propiedades que debe cumplir un hash Sea cual sea la longitud del texto base A, la longitud de su hash resultante B siempre va a ser la misma. Para cada entrada A, la función generará una salida B única. Dado un texto base, es fácil y rápido (para un ordenador) calcular su número resumen. Es imposible reconstruir el texto base a partir del número resumen.
Ejemplo:
public class Empleado {
int IDempleado;
String nombre;
Departamento dept;
// Métodos de la Clase
@Override
public int hashCode() {
int hash = 1;
hash = hash * 17 + IDempleado;
hash = hash * 31 + nombre.hashCode();
hash = hash * 13 + ((dept == null) ? 0 : dept.hashCode());
return hash;
}
}
La encriptación hash supone un gran avance en la materia de seguridad web debido a su fácil implementación y ejecución, ademas de ser un método seguro a la hora de realizar transacciones por internet, ya sea recuperando una contraseña o pagando por un producto en una tienda virtual.
Referencias:
Anónimo. (2017). Función Hash. 27/11/2017, de Wikipedia Sitio web: https://es.wikipedia.org/wiki/Funci%C3%B3n_hash
Donohue, B.. (2014). ¿Qué Es Un Hash Y Cómo Funciona?. 27/11/2017, de Kaspersky Sitio web: https://latam.kaspersky.com/blog/que-es-un-hash-y-como-funciona/2806/