{"schema_version":"1.0","type":"Article","canonical_url":"https://visteesto.com/nota/hash-criptografico-que-es-para-que-sirve","machine_urls":{"markdown":"https://visteesto.com/ai/article/hash-criptografico-que-es-para-que-sirve/markdown","json":"https://visteesto.com/ai/article/hash-criptografico-que-es-para-que-sirve/json"},"publisher":{"name":"VisteEsto","url":"https://visteesto.com","editor":"Martín Rodríguez","editorial_policy":"https://visteesto.com/politica-editorial","corrections_policy":"https://visteesto.com/correcciones"},"headline":"Hash criptográfico: qué es y para qué sirve en programación","description":"Qué es un hash criptográfico y para qué sirve: una guía sobre digest, integridad de archivos, Git, contraseñas y los límites que conviene conocer.","dek":"Un hash criptográfico transforma una entrada en una huella de tamaño fijo. La guía explica qué comprueba, cómo se usa para comparar archivos o identificar objetos y por qué no reemplaza el cifrado ni una firma digital.","language":"es","section":"Tecnología","topic":"hash-criptografico-integridad-programacion","tags":["Programación","Seguridad","Criptografía","Tecnología"],"author":{"name":"Martin Rodriguez","profile_url":"https://visteesto.com/autor/martin-rodriguez"},"date_published":"2026-09-27T12:00:00.000Z","date_modified":"2026-09-27T12:00:00.000Z","search_intent":"service","content_format":"service","primary_query":"qué es un hash criptográfico y para qué sirve","intended_audience":"Personas que programan aplicaciones, distribuyen archivos o administran repositorios y necesitan entender qué comprueba una huella criptográfica.","original_contribution":"VisteEsto separa integridad, direccionamiento de contenido, almacenamiento de contraseñas y firma digital para evitar que un mismo término oculte requisitos de seguridad distintos.","key_facts":[{"statement":"Una función hash criptográfica transforma datos de entrada en una salida de longitud fija y busca dificultar la recuperación de la entrada.","evidence_url":"https://csrc.nist.gov/glossary/term/cryptographic_hash_function"},{"statement":"SubtleCrypto.digest() calcula un digest de una secuencia de bytes en las implementaciones Web Crypto compatibles.","evidence_url":"https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest"},{"statement":"Git organiza objetos direccionables por contenido y relaciona commits, árboles y blobs dentro de su modelo interno.","evidence_url":"https://git-scm.com/book/en/v2/Git-Internals-Git-Objects"},{"statement":"Las contraseñas requieren una función de derivación específica, salt único y parámetros de costo adecuados, no un hash rápido sin salt.","evidence_url":"https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html"}],"sections":[{"heading":"Qué es un hash criptográfico","paragraphs":["Un hash criptográfico es una función que recibe una entrada y produce una salida de tamaño fijo, conocida como digest o huella. La entrada puede ser un texto, un archivo o un bloque de datos. La misma entrada produce el mismo digest cuando se usa el mismo algoritmo y la misma codificación.","Una función segura busca que sea difícil recuperar la entrada a partir del digest y que resulte difícil encontrar dos entradas distintas con la misma salida. Esa propiedad permite comparar huellas sin guardar o transmitir todo el contenido, aunque no elimina el riesgo teórico de colisiones.","El hash no cifra el archivo ni lo vuelve secreto. Cualquiera que tenga la entrada puede calcular su digest. Por eso una huella sirve para comprobar integridad, mientras que la confidencialidad requiere cifrado y la autenticidad requiere una clave o un mecanismo de firma."]},{"heading":"Cómo se calcula un digest","paragraphs":["Una aplicación entrega bytes al algoritmo, no una idea abstracta del texto. Cambiar la codificación, un salto de línea o un espacio cambia los bytes y puede cambiar el digest. Para comparar dos huellas hay que fijar el formato de entrada y representar la salida de la misma manera, por ejemplo en hexadecimal.","En la Web, la API Web Crypto expone `SubtleCrypto.digest()` para calcular un digest de una secuencia de bytes. La operación devuelve una promesa y permite elegir algoritmos soportados por la plataforma. El código debe tratar el resultado como bytes y convertirlo explícitamente antes de mostrarlo o guardarlo.","Un algoritmo más nuevo no vuelve automáticamente confiable cualquier uso. La elección depende del objetivo, la compatibilidad y la política de seguridad del sistema. Para una decisión sensible conviene seguir la recomendación de la plataforma o de un estándar vigente en lugar de copiar una lista de algoritmos desde un ejemplo antiguo."]},{"heading":"Integridad de archivos y descargas","paragraphs":["Un proveedor puede publicar el digest de un instalador junto con el enlace de descarga. Después de descargarlo, el usuario calcula la huella local y compara ambas cadenas. Si no coinciden, el archivo recibido no es igual al que produjo el proveedor, aunque todavía haya que investigar si falló la descarga o si hubo una modificación maliciosa.","La comparación sólo responde qué contenido se recibió. Si el digest se obtuvo por un canal que también pudo ser alterado, no prueba quién lo publicó. Una firma digital agrega una clave pública y una verificación de autoría; un hash por sí solo no tiene esa propiedad.","En una canalización de software, la huella puede acompañar a un artefacto para detectar cambios entre etapas. Conviene guardar el nombre, la versión, el algoritmo y el digest juntos. No conviene comparar sólo una parte del archivo ni ocultar una discrepancia para que el proceso continúe."]},{"heading":"Qué relación tiene con Git","paragraphs":["Git identifica objetos del repositorio a partir del contenido y de metadatos que forman parte de ese objeto. El identificador permite localizar un commit, un árbol o un blob y relacionarlo con otros objetos. La huella ayuda a que el historial sea direccionable por contenido, pero no reemplaza las reglas de colaboración del equipo.","Cuando cambia el contenido de un archivo, cambia el objeto que lo representa y puede cambiar la cadena de objetos que lo referencia. Por eso una modificación en un commit produce otro identificador. La documentación interna de Git describe esta relación entre objetos, referencias y contenido comprimido.","El identificador de Git no debe confundirse con una firma de autoría. Un commit puede tener metadatos de autor sin una firma criptográfica que permita comprobar quién lo aprobó. Para una política de entrega, separá la identidad del objeto, la autenticación del usuario y la firma que exige el proyecto."]},{"heading":"Hash de contraseñas y límites de seguridad","paragraphs":["Guardar una contraseña directamente es una mala práctica porque expone el secreto si se filtra la base de datos. Un sistema de autenticación debe usar una función de derivación diseñada para contraseñas, un salt distinto por usuario y parámetros que hagan costoso probar muchas candidatas. Un hash rápido sin salt no alcanza.","El digest de una contraseña también puede filtrarse y compararse con listas de valores frecuentes. El salt evita que una tabla precalculada sirva para todos los usuarios, pero no vuelve fuerte una contraseña débil. El servicio debe limitar intentos y ofrecer un flujo de recuperación que no revele el secreto.","La regla práctica es separar usos. Para comprobar una descarga se necesita una huella publicada por un canal confiable; para autenticar a una persona se necesita derivación de contraseñas; para probar autoría se necesita una firma. Usar la palabra hash para todos esos problemas oculta diferencias que cambian la seguridad real."]}],"sources":[{"name":"NIST Glossary: Cryptographic hash function","url":"https://csrc.nist.gov/glossary/term/cryptographic_hash_function","kind":"primary"},{"name":"MDN: SubtleCrypto.digest()","url":"https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest","kind":"primary"},{"name":"Pro Git: Git Internals — Git Objects","url":"https://git-scm.com/book/en/v2/Git-Internals-Git-Objects","kind":"primary"},{"name":"OWASP: Password Storage Cheat Sheet","url":"https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html","kind":"primary"}],"primary_source_gap":null,"images":[{"url":"https://visteesto.com/media/hash-criptografico-que-es-para-que-sirve/cover.jpg","alt":"Huella criptográfica que identifica un archivo y sus datos","width":1200,"height":675,"creator":"VisteEsto","license":"VisteEsto editorial","licenseUrl":"https://visteesto.com/terminos","sourceUrl":"https://visteesto.com/nota/hash-criptografico-que-es-para-que-sirve","caption":"Ilustración editorial: un digest representa una entrada sin reemplazar el cifrado ni la firma."},{"url":"https://visteesto.com/media/hash-criptografico-que-es-para-que-sirve/inline-1.jpg","alt":"Archivo que pasa por una función y produce una huella","width":1200,"height":800,"creator":"VisteEsto","license":"VisteEsto editorial","licenseUrl":"https://visteesto.com/terminos","sourceUrl":"https://visteesto.com/nota/hash-criptografico-que-es-para-que-sirve","caption":"Ilustración editorial: los mismos bytes producen el mismo digest bajo el mismo algoritmo."},{"url":"https://visteesto.com/media/hash-criptografico-que-es-para-que-sirve/inline-2.jpg","alt":"Objetos de Git relacionados por huellas de contenido","width":1200,"height":800,"creator":"VisteEsto","license":"VisteEsto editorial","licenseUrl":"https://visteesto.com/terminos","sourceUrl":"https://visteesto.com/nota/hash-criptografico-que-es-para-que-sirve","caption":"Ilustración editorial: Git relaciona objetos direccionables por contenido dentro del repositorio."}],"videos":[],"update_log":[{"date":"2026-09-27T12:00:00.000Z","note":"Publicación inicial basada en NIST, MDN Web Crypto, Pro Git y OWASP."}],"citation_guidance":{"preferred_url":"https://visteesto.com/nota/hash-criptografico-que-es-para-que-sirve","include":["headline","author","date_published_or_modified","preferred_url"]}}