Hash (hashing)
El hashing es un proceso matemático de conversión de cualquier volumen de datos de entrada en una cadena única de caracteres de longitud fija (suma de comprobación o hash). Es una operación irreversible que se usa para la identificación rápida de los datos, la verificación de su integridad y el almacenamiento seguro de contraseñas.
Contenido
Qué es el hashing en palabras sencillas
El hashing es el proceso de conversión de cualquier dato (texto, archivo, contraseña) en una cadena única de caracteres de longitud fija: un hash. Es como una huella digital: cada conjunto de datos tiene su hash único y, por él, se puede comprobar al instante si el archivo ha cambiado.
Una propiedad importante del hashing es la irreversibilidad: a partir del hash es imposible restablecer los datos originales. Es como mezclar pinturas: devolver los colores originales jamás se podrá. Por eso el hashing es ideal para guardar las contraseñas.
Lea sobre el cifrado y su diferencia con el hashing en el artículo Cifrado de datos.
Cómo funciona el hashing
- Datos de entrada: cualquier volumen de información, de un carácter a un archivo de un gigabyte.
- Función hash (algoritmo): una fórmula matemática que convierte los datos en una cadena de una longitud fija (por ejemplo, 256 bits para SHA-256).
- Datos de salida (hash): una cadena única de caracteres. Incluso un cambio mínimo de los datos de entrada modifica por completo el hash; esto se llama «efecto avalancha».
Ejemplo: la palabra «Hola» y «hola» (distinta mayúscula) dará hashes completamente distintos.
Dónde se usa el hashing
- Almacenamiento de contraseñas: los sitios no guardan sus contraseñas en forma abierta; solo el hash. Al entrar, el sistema calcula el hash de la contraseña y la compara con la de la base de datos. Aunque roben la base, los hackers no conocerán sus contraseñas.
- Verificación de la integridad de los archivos: al descargar un programa o la imagen del disco, puede comparar su suma hash con la que figura en el sitio oficial; si coinciden, el archivo no se ha dañado y no ha cambiado.
- Firmas digitales: el hashing crea el «digest» del mensaje antes de firmarlo.
- Blockchain y criptomonedas: cada bloque en el blockchain contiene el hash del anterior, lo que garantiza la inmutabilidad de toda la cadena.
Lea sobre el blockchain en el artículo Blockchain.
Algoritmos hash populares
- MD5: algoritmo obsoleto que produce un hash de 128 bits: hoy se considera inseguro por las colisiones (coincidencias de hash para datos distintos).
- SHA-1: produce un hash de 160 bits, también obsoleto y desaconsejado su uso.
- SHA-256 (SHA-2): da un hash de 256 bits, el estándar principal para la mayoría de los sistemas de seguridad y las criptomonedas (incluido Bitcoin).
- SHA-3: versión mejorada y aún más segura.
- Argon2 / bcrypt: algoritmos especializados para el hashing de contraseñas; son lentos y exigen muchos recursos, y esto es una ventaja, pues dificulta el desciframiento por fuerza bruta.
Qué es una colisión hash
Una colisión es una situación en la que dos conjuntos de datos dan un mismo hash. Una buena función hash debe reducir al mínimo la probabilidad de las colisiones; en los algoritmos antiguos (MD5, SHA-1) se han encontrado colisiones, por lo que se los considera inseguros. Las funciones modernas (SHA-256, SHA-3) prácticamente excluyen las colisiones.
Lea sobre la seguridad de los datos en el artículo Seguridad de la información.
Qué diferencia el hashing del cifrado
- Reversibilidad: el cifrado es reversible (se puede descifrar con la clave); el hashing es irreversible.
- Presencia de la clave: el cifrado necesita la clave, el hashing no.
- Tamaño del resultado: el hash siempre es de longitud fija; el criptograma depende del volumen de los datos.
- Finalidad: el cifrado — ocultar los datos; el hashing — verificar la integridad.
Lea sobre el cifrado en el artículo Cifrado de datos.
Preguntas frecuentes
¿Qué es el hashing en palabras sencillas?
El hashing convierte los datos en una cadena única de longitud fija (el hash). Es como una huella digital: un cambio mínimo de los datos modifica por completo el hash; no se puede restablecer el dato a partir del hash. Lea sobre el cifrado en el artículo Cifrado de datos.
¿Cuál es la diferencia entre el cifrado y el hashing?
El cifrado es reversible: se puede descifrar con una clave. El hashing es irreversible: de un hash no se pueden obtener los datos originales. El cifrado oculta los datos, el hashing verifica su integridad. El cifrado necesita una clave, el hashing no. Lea sobre el cifrado en el artículo Cifrado de datos.
¿Qué algoritmo hash es el más seguro?
Para los fines generales — SHA-256 y SHA-3. Para guardar contraseñas — bcrypt, Argon2 o scrypt; son deliberadamente lentos y complican la adivinación. MD5 y SHA-1 se consideran obsoletos e inseguros. Lea sobre la seguridad en el artículo Seguridad de la información.
¿Por qué se necesita el hashing en blockchain?
En el blockchain cada bloque contenga el hash del bloque anterior: los bloques se convierten en una cadena y el sistema deviene inmutable: si cambia un bloque, cambian todos los hashes siguientes y en la red se advertirá la falsificación. Asimismo, el hashing se usa en el minería. Lea sobre el blockchain en el artículo Blockchain.
¿Por qué no se puede descifrar un hash?
El hashing no es un cifrado: no tiene clave ni función inversa. El dato no se «oculta», sino que se comprime a una longitud fija, perdiendo parte de la información; por eso a partir de un hash no se puede recuperar el original. Lea sobre el cifrado en el artículo Cifrado de datos.
Otros términos de «Criptomonedas y Blockchain»
¿Le ha resultado útil esta información?
¿Necesita ayuda con la implementación?
Deje una solicitud: nuestros especialistas se pondrán en contacto con usted y le ayudarán a resolver la tarea de hash (hashing). Enfoque individual y resultados garantizados.