Breaking

Post Top Ad

Your Ad Spot

martes, 17 de diciembre de 2019

Programa Python para encontrar hash de archivo

En este artículo, aprenderá a encontrar el hash de un archivo y mostrarlo.
Para comprender este ejemplo, debe tener conocimiento de los siguientes temas de programación de Python :
  • Funciones de Python
  • Funciones definidas por el usuario de Python
  • E / S de archivo Python
Las funciones hash toman una cantidad arbitraria de datos y devuelven una cadena de bits de longitud fija. La salida de la función se llama mensaje de resumen.
Son ampliamente utilizados en criptografía para fines de autenticación. Hay muchas funciones de hash como MD5, SHA-1, etc. Consulte esta página para obtener más información sobre las funciones de hash en criptografía .
En este ejemplo, ilustraremos cómo hacer un hash de un archivo. Utilizaremos el algoritmo de hash SHA-1. El resumen de SHA-1 tiene 160 bits de longitud.
No alimentamos todos los datos del archivo a la vez, porque algunos archivos son muy grandes para caber en la memoria de una vez. Romper el archivo en pequeños trozos hará que la memoria del proceso sea eficiente.

Código fuente para encontrar hash

  1. # Python rogram to find the SHA-1 message digest of a file
  2. # importing the hashlib module
  3. import hashlib
  4. def hash_file(filename):
  5. """"This function returns the SHA-1 hash
  6. of the file passed into it"""
  7. # make a hash object
  8. h = hashlib.sha1()
  9. # open file for reading in binary mode
  10. with open(filename,'rb') as file:
  11. # loop till the end of the file
  12. chunk = 0
  13. while chunk != b'':
  14. # read only 1024 bytes at a time
  15. chunk = file.read(1024)
  16. h.update(chunk)
  17. # return the hex representation of digest
  18. return h.hexdigest()
  19. message = hash_file("track1.mp3")
  20. print(message)
Salida
633d7356947eec543c50b76a1852f92427f4dca9
En este programa, abrimos el archivo en modo binario. Las funciones hash están disponibles en el hashlibmódulo. Realizamos un bucle hasta el final del archivo utilizando un whilebucle. Al llegar al final, obtenemos un objeto de bytes vacío.
En cada iteración, solo leemos 1024 bytes (este valor se puede cambiar de acuerdo a nuestro deseo) del archivo y actualizamos la función de hash.
Finalmente, devolvemos el mensaje de resumen en representación hexadecimal usando el hexdigest()método

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas