BLOG

Funciones Hash: MD5 y SHA-256
Seguridad- Tecnología

En el último artículo exploramos las posibilidades que nos ofrece la criptografía asimétrica para mejorar la seguridad de nuestras comunicaciones digitales. Hoy pondremos el foco en otro tipo de operación especial usada ampliamente en el campo de la seguridad: las funciones hash. Aprenderemos de forma práctica a usar algunas de las funciones hash más populares y utilizadas como son MD5 y SHA-256.

¿Qué es un una función Hash?

La función hash es un tipo de operación que toma una entrada de datos arbitraria  y la mapea a una salida de un tamaño fijo, llamado hash o resumen. El tamaño de salida suele especificarse en bits de datos y se incluye a menudo en el nombre de la función hash.

Las funciones hash criptográficas se usan para diversas aplicaciones como autenticación, integridad de mensajes, huellas digitales, detección de datos corruptos y firmas digitales. El hash criptográfico difiere claramente de la encriptación porque las funciones hash criptográficas deben ser unidireccionales. es decir, en una función hash puedes introducir texto sin formato y obtener una salida ininteligible, pero no se puede tomar la salida del hash y recuperar el texto sin formato.

La función hash criptográfica ideal debe ser determinista, lo que significa que el mismo valor de entrada debe devolver siempre el mismo resumen hash de salida. Un pequeño cambio en la entrada debería dar como resultado una salida totalmente distinta, tratando de evitar que ante dos entradas de datos diferentes nunca se produzca el mismo resultado hash (colisiones de hash).

MD5 y SHA

MD5 es una función hash popular y ampliamente usada, diseñada a principios de la década de 1990 como una función hash criptográfica. Trabaja con bloques de 512 bits y genera resúmenes de hash de 128 bits. MD5 fue publicada en 1992, y aunque durante estos años fue usada y adoptada en forma generalizada, se han descubierto varias vulnerabilidades durante los últimos años por lo que actualmente se recomienda usar algoritmos más seguros como SHA-256, PBKDF2 ,  bcrypt y  scrypt  en lugar de MD5.

SHA-1 es otra de las funciones hash criptográficas más populares. Fue diseñada por la NSA y publicada en 1995. Trabaja con bloques de 512 bits y genera un resumen hash de 160 bits. Se utiliza en protocolos como TLS/SSL, PGP SSH y en IPsec. Muchas organizaciones recomiendan reemplazar SHA-1 por SHA-2 o SHA-3 y los principales proveedores de navegadores anunciaron sus intenciones de suprimir la compatibilidad con certificados SSL que utilizaban SHA-1 en 2017 debido a la identificación de algunas vulnerabilidades. Actualmente SHA-256 es uno de los hash más utilizados.

MD5: Caso práctico con md5sum

Md5sum es un programa de hash que calcula y verifica los hashes MD5 de 128 bits. Se utiliza principalmente para verificar la integridad de los archivos. Para comenzar, crearemos un archivo de texto con algunos datos llamado «file.txt» que contendrá una sola línea de texto básico:

$ echo 'hello world' > file.txt

A continuación utilizaremos md5sum para generar un hash del archivo y almacenar el resultado en un fichero llamado “file.txt.md5”:

$ md5sum file.txt > file.txt.md5

Para ver el hash que acabas de generar:

$ cat file.txt.md5

Con md5sum es posible verificar que el hash sea correcto y que el archivo original no haya sido manipulado desde que se creó el fichero “file.txt.md5”. Para ello, escribe el siguiente comando y observa el resultado mostrado:

$ md5sum -c file.txt.md5

Ahora vamos a modificar el fichero original “file.txt” y comprobar que en este caso la verificación del hash falla.

$ nano file.txt

Para guardar los cambios en el archivo, presiona Ctrl-X y luego Yes.

Una vez modificado el archivo, volvemos a realizar la verificación del hash. Comprueba que validación ha fallado lo que demuestra que cualquier cambio que introduzcamos en el fichero, por muy pequeño que sea, generará un hash diferente:

SHA-256: Caso práctico con shasum

Vamos a repetir los pasos que hicimos en el caso práctico anterior pero esta vez utilizando la función hash SHA-256 mediante el uso de la herramienta shasum. SHA-256 ofrece mayor seguridad que MD5 y es uno de los hash más utilizados.

Lo primero que haremos será generar de nuevo el hash del fichero “file.txt”. El argumento –a especifica el algoritmo que se quiere utilizar, siendo SHA-1 el predeterminado si no se indica ningún otro valor.

$ shasum -a 256 file.txt > file.txt.sha256

SHA-256 genera un hash más largo que MD5 y, por tanto, más difícil de adivinar:

$ cat file.txt.sha256

Por último vamos verificar el hash generado y comprobar que el fichero original no ha sido modificado:

$ shasum -c file.txt.sha256

Con esto finalizamos el caso práctico. Puedes probar a modificar de nuevo el fichero original «file.txt«, volver a verificar el hash y comprobar que la validación fallaría. Espero que te haya resultado interesante aprender a utilizar estos dos algoritmos de hashing para verificar la integridad de la información contenida en los archivos de texto.

Referencias

  • Estudio comparativo MD5 vs SHA-256
  • Diferencias entre SHA-1, SHA-2
Comparte este artículo si te gustó:

Tags:

Previous
Next

3 Responses

  1. Buens noches. Gusto en saludarte.Estoy comenzando clases sobre cyberseguridad, e investigando sobre los Hash donde cada una tiene diferentes funciones. ¿Porque los valores que arrojan tiene variación de longitud diferente?

    En esper de tu pronta respuesta.

    Responder
  2. ¿ Md5 no se considera roto ?

    Ahora mismo las unicas alternativas que veo son SHA-2 y PBKDF2.

    Aunque no se cual es mejor. ¿ Que opinion tienes ? Yo en principio prefiero PBKDF2 pero realmente no he informado lo suficiente.

    Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

代做工资流水公司银川工资流水app截图公司沧州银行流水单报价许昌背调工资流水报价揭阳打印车贷工资流水邢台做薪资流水上饶代办工资流水app截图沈阳企业银行流水打印盐城代办流水扬州入职工资流水代做南宁车贷银行流水 打印入职银行流水办理镇江入职流水代办广州工资银行流水制作绵阳薪资流水单多少钱重庆公司流水价格福州车贷银行流水 办理企业对私流水代做桂林签证流水样本徐州工资流水app截图模板合肥查询收入证明西安做工资代付流水阜阳购房银行流水代做株洲办理银行流水账绍兴背调银行流水办理无锡办理银行流水账芜湖办理日常消费流水阜阳打企业流水打印沈阳工资银行流水代办台州转账银行流水三亚工资银行流水样本香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化