Herramienta para hashear, crackear y decodificar huellas hash (MD5, SHA1, SHA256, etc.). Decodificación por fuerza bruta o diccionario.
Función de Hash - dCode
Etiqueta(s): Criptografía Moderna, Informática
dCode es gratuito y sus herramientas son una valiosa ayuda en juegos, matemáticas, geocaching, acertijos y problemas para resolver todos los días.
¿Una sugerencia? ¿Un comentario? ¿Un error? ¿Una idea? ¡Escribe en dCode!
Una función hash es un algoritmo que toma datos de cualquier tamaño como entrada y los transforma en un valor de tamaño fijo, denominado huella digital, hash o valor hash. Esta transformación está diseñada para ser difícil de invertir: por lo general, no es posible recuperar directamente los datos originales a partir del hash. Las funciones hash se utilizan especialmente en informática y criptografía para verificar la integridad de los datos y proteger las contraseñas.
Un hash es la huella digital resultante de una función hash.
Ejemplo: El hash MD5 de dCode es e9837d47b610ee29399831f917791a44
Ejemplo: El hash SHA1 de dCode es 15fc6eed5ed024bfb86c4130f998dde437f528ee
Ejemplo: La huella SHA256 de dCode es 254cd63ece8595b5c503783d596803f1552e0733d02fe4080b217eadb17711dd
El hash permite identificar los datos iniciales con un alto grado de probabilidad sin necesidad de almacenarlos. Esto permite verificar una contraseña sin tener que conocerla en texto plano.
Los pequeños cambios en los datos de entrada provocan cambios drásticos en el hash resultante. Esto ayuda a garantizar la integridad de los datos y permite comprobar si han sido modificados.
Las funciones hash procesan datos informáticos en formato binario y aplican operaciones no lineales y no reversibles con un fuerte efecto avalancha (el resultado es muy diferente incluso cuando los datos de entrada son muy similares). La huella digital suele representarse mediante caracteres hexadecimales.
El principio del hash consiste en que la operación sea difícil de invertir. No existe un algoritmo de descifrado que permita recuperar directamente los datos originales. Por eso las funciones hash se utilizan para almacenar contraseñas: se guarda un hash de verificación, en lugar de una contraseña cifrada que pueda descifrarse.
Ejemplo: 123+456=579: a partir de 579, ¿cómo recuperar 123 y 456? No es posible determinarlo con certeza salvo probando las combinaciones posibles.
Las funciones hash realizan numerosas operaciones para dificultar la recuperación de los datos de entrada.
Las funciones hash están diseñadas para ser difíciles de invertir y sus algoritmos son públicos. Para recuperar una entrada que produzca el mismo hash, es necesario conocer la entrada original o buscar una coincidencia probando posibles entradas.
En teoría, un ataque por fuerza bruta puede probar todas las cadenas binarias posibles, pero incluso un mensaje corto de 6 bytes representa 281 billones de combinaciones. Incluso con procesadores rápidos capaces de realizar millones de cálculos hash por segundo, probar todas las posibilidades para encontrar una entrada que corresponda a un hash puede llevar días, meses o años.
Sin embargo, los usuarios suelen reutilizar contraseñas y tienden a elegir determinados caracteres y combinaciones. Por ello, es posible almacenar las cadenas más probables y sus hashes correspondientes en un diccionario muy grande. Las tablas arcoíris son otra técnica: utilizan cálculos precalculados y cadenas de reducción para acelerar determinadas búsquedas de correspondencias entre hashes y posibles entradas.
Ejemplo: dCode utiliza una combinación de ambos enfoques: diccionarios que contienen hashes precalculados, siguiendo un principio similar al de las tablas arcoíris.
Si la contraseña buscada no está presente en los datos disponibles, es posible que no se obtenga ningún resultado.
Una colisión de hash se produce cuando dos entradas diferentes generan el mismo valor hash. Como el hash tiene un tamaño fijo, mientras que los datos de entrada pueden tener cualquier longitud, las colisiones existen necesariamente en teoría.
Ejemplo: Si una función hash produce una huella de 256 bits, existen $ 2^{256} $ valores hash posibles, pero un número infinito de entradas posibles.
Las funciones hash criptográficas están diseñadas para que resulte extremadamente difícil encontrar dos entradas diferentes que produzcan el mismo hash. Una colisión explotable puede comprometer determinadas aplicaciones criptográficas, incluidas las firmas digitales. MD5 y SHA-1 son vulnerables a los ataques por colisión y ya no se recomiendan para aplicaciones que requieren resistencia a las colisiones.
Un ataque de diccionario, un ataque por fuerza bruta y una tabla arcoíris son tres métodos diferentes para buscar una entrada que pueda producir un hash determinado.
Un ataque de diccionario prueba una lista de palabras, contraseñas comunes o combinaciones probables. Aprovecha el hecho de que los usuarios suelen elegir contraseñas predecibles.
Un ataque por fuerza bruta prueba sistemáticamente todas las combinaciones posibles dentro de un espacio de búsqueda determinado. Su coste aumenta considerablemente con la longitud y la complejidad de la contraseña.
Una tabla arcoíris utiliza cálculos precalculados y cadenas de reducción para acelerar determinadas búsquedas de correspondencias entre hashes y posibles entradas. Requiere cálculos y almacenamiento previos y no es simplemente una lista exhaustiva de todas las palabras y sus hashes.
Ejemplo: dCode combina ambos enfoques: un diccionario que contiene hashes precalculados similares a los utilizados en las tablas arcoíris.
La eficacia de estos métodos depende, entre otros factores, de la función hash utilizada, de la presencia de una sal, de la fortaleza de la contraseña y de los datos disponibles.
Un hash puede adoptar muchas formas, pero las más habituales son las cadenas hexadecimales: 32 caracteres de 0123456789abcdef para MD5, 40 para SHA-1 y 64 para SHA-256, etc.
El formato de hash modular utilizado por algunas implementaciones de crypt() emplea el símbolo $ seguido de campos que pueden indicar el algoritmo utilizado y sus posibles parámetros.
dCode dispone de un identificador de hash.
Las tablas arcoíris (enormes bases de datos de correspondencias entre hashes y contraseñas) crecen continuamente y acumulan contraseñas robadas de diversos sitios web. Aprovechando la capacidad de cálculo de los ordenadores modernos, pueden ayudar a recuperar contraseñas cortas en minutos u horas.
Para contrarrestar esta técnica, se recomienda añadir una sal (caracteres como prefijo o sufijo) a la contraseña. De este modo, las tablas precalculadas deben volver a calcularse para tener en cuenta la sal, que modifica los hashes resultantes. Este proceso se denomina salado, y las contraseñas se consideran saladas.
El coste mide los recursos necesarios para calcular un hash. Para dificultar la creación de tablas arcoíris, es posible aumentar el coste de determinadas funciones hash, de modo que los cálculos tarden varios milisegundos o incluso segundos, lo que encarece considerablemente los ataques.
bcrypt es un algoritmo de hash de contraseñas que utiliza un coste de cálculo configurable. El algoritmo incorpora de forma nativa los conceptos de sal y coste.
Un hash seguro para almacenar contraseñas se calcula con un coste computacional elevado, lo que hace que el proceso sea más lento y requiera más recursos. Esto dificulta los ataques por fuerza bruta y de diccionario.
En cambio, un hash rápido se calcula con mayor rapidez, pero puede ser más vulnerable a los ataques cuando se utiliza para almacenar contraseñas. MD5 y SHA-1 también presentan debilidades criptográficas y ya no se recomiendan para aplicaciones que requieren resistencia a las colisiones.
Para almacenar contraseñas, es preferible utilizar algoritmos específicos como Argon2id, bcrypt, scrypt o PBKDF2.
dCode conserva la propiedad del código fuente "Función de Hash". Cualquier algoritmo para "Función de Hash", subprograma o fragmento o script (convertidor, solucionador, cifrado / descifrar, codificar / decodificar, cifrar / descifrar, descifrar, traducir), o todas las funciones "Función de Hash" (calcular, convertir, resolver, descifrar / cifrar, descifrar / cifrar, decodificar / codificar, traducir) escritas en cualquier lenguaje informático (Python, Java, PHP, C#, Javascript, Matlab, etc.) o cualquier base de datos, o acceso API a "Función de Hash" no son públicas (excepto una licencia explícita de código abierto). Lo mismo ocurre con la descarga para uso sin conexión en PC, dispositivos móviles, tabletas, iPhone o Android. aplicación.
Recordatorio: dCode es un recurso educativo y didáctico, accesible online de forma gratuita y para todos.
El contenido de la página "Función de Hash" así como sus resultados pueden copiarse y reutilizarse libremente, incluso con fines comerciales, siempre que se cite dCode.fr como fuente (Licencia de distribución libre Creative Commons CC-BY).
La exportación de los resultados es gratuita y se realiza simplemente haciendo clic en los íconos de exportación ⤓ (formato .csv o .txt) o ⧉ copiar y pegar.
Para citar dCode.fr en otro sitio web, utilice el enlace:
En un artículo o libro científico, la cita bibliográfica recomendada es: Función de Hash en dCode.fr [sitio web en línea], recuperado el 2026-11-06,