Los message digest o resumen de mensaje o hash, como se los conoce comúnmente sobre una cadena de bytes nos permiten calcular un resumen sobre un mensaje el cual nos puede servir para validar la no modificación del mensaje, por ej. si bajamos un archivo de internet, que se haya descargado correctamente o que no haya sufrido una modificación.
Conociendo el tamaño del mensaje y su hash, es posible verificarlo, ya que los algoritmos para la generación del hash garantizan que es muy difícil generar otro mensaje del mismo tamaño y que al calcular el hash este sea el mismo del mensaje original.
Hay diferentes algoritmos para obtener el hash, entre los más conocidos: md5, sha1, sha256, sha512.
Mediante el uso de openssl podemos generar el hash para un mensaje o cadena de texto:
ejemplos:
echo -n "este es el mensaje" | openssl dgst -md5 273413cf8c45230add58d6f4ca0ab467
echo -n "este es el mensaje" | openssl dgst -sha256 ccf7dcbc6bac2e645f895440b9f0be1c6083ba9299ef352bc97514bb5988dd87
echo -n "este es el mensaje" | openssl dgst -sha512 10ffd258a8dfd95bd97cd6d8a336dc906d3401df6476fd211a55e89096f075a39c8e4cd42c5bd3151ba465194e2b13b918cd33057b0c346139e9d428113fedaa
Lo que se imprime es la representación hexadecimal de los bytes que forman el hash, pero si necesitamos guardar a un archivo el valor en binario de dicho resultado o pasarlo en binario a otro programa es posible hacerlo mediante el flag -binary
echo -n "este es el mensaje" | openssl dgst -sha256 -binary > sha256.bin
El comando anterior manda el hash al archivo sha256.bin, dado que 256 bits / 8 = 32 bytes, podemos comprobar que el archivo pesa 32 bytes
ls -lh sha256.bin -rw-r--r-- 1 user user 32 2015-08-18 18:23 sha256.bin
De la misma forma podemos calcular el hash a un archivo, por ejemplo:
md5sum iprules.sh 726c99a062d2dc23e8b836c2221ef25c iprules.sh cat iprules.sh | openssl dgst -md5 726c99a062d2dc23e8b836c2221ef25c
No hay comentarios.:
Publicar un comentario