Skip to content

Instantly share code, notes, and snippets.

@VHSCODE
Last active October 18, 2023 13:52
Show Gist options
  • Save VHSCODE/00fb7b5b227efe8ca9093e4fcd2f32e2 to your computer and use it in GitHub Desktop.
Save VHSCODE/00fb7b5b227efe8ca9093e4fcd2f32e2 to your computer and use it in GitHub Desktop.
Utilidad para comprobar el contenido de dos archivos y comprobar su prueba de trabajo
#!/bin/python
## Actividad 3
from hashlib import sha256
import secrets
import sys
if len(sys.argv) < 3 :
print("Por favor, especifica los archivos de entrada")
exit(1)
buffer1 = []
buffer2 = []
with open(sys.argv[1],"rb") as f:
buffer1 =f.read()
with open(sys.argv[2],"rb") as f:
buffer2 =f.read()
m = sha256()
m.update(buffer1)
hash_archivo1 = m.hexdigest()
#Comprobamos si los contenidos del principio son los mismos
m = sha256()
m.update(buffer2[0:len(buffer1)])
if hash_archivo1 != m.hexdigest():
print("No comienzan por los mismos contenidos")
exit(1)
#Comprobamos el contenido de la ultima linea
ultima_linea = buffer2[len(buffer1):].decode()
tokens= ultima_linea.split()
if len(tokens) < 2:
print("No contiene los datos necesarios")
elif tokens[2] != "100":
print("No contiene los datos necesarios")
#Finalmente comprobamos si el hash contiene una cadena de ceros al comienzo
m = sha256()
m.update(buffer2)
cantidad_ceros = len(m.hexdigest()) - len(m.hexdigest().lstrip('0'))
if cantidad_ceros <= 0:
print("El hash del segundo archivo NO comienza por una cadena de ceros")
else:
print("El hash del segundo archivo SI comienza por una cadena de ceros")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment