import Cesar, RailFence import hashlib TextoACifrar = open('mensajedeentrada.txt', 'r') #Txt que contiene el texto plano TextoPlano = TextoACifrar.readlines()[0] #Extrae el texto plano del archivo TextoACifrar.close() #Aplicación del Hash md5 al texto plano TextoHash = hashlib.md5() textoAHashear = TextoPlano TextoHash.update(textoAHashear.encode()) HashTextoPlano = TextoHash.hexdigest() N_Cesar = 5 #Nro de veces de Cesar NivelesRailFence = 3 #Nro de bajas en Rail Fence TextoCesar = Cesar.Rot(N_Cesar)(TextoPlano) #Texto cifrado con Cesar TextoRailFence = RailFence.Encriptar( TextoCesar, NivelesRailFence) #Texto cifrado por RailFence archivoHashear = open('mensajeseguro.txt', 'w') archivoHashear.write(TextoRailFence) archivoHashear.close() print("=================================================") print("Mensaje Original:", TextoPlano) print("Mensaje Encriptado:", TextoRailFence)
import Cesar, RailFence import hashlib from Main_Encriptacion import HashTextoPlano, TextoPlano, N_Cesar, NivelesRailFence #Se exporta el hash del texto plano y los niveles de Cesar y RailFence TextoDescrifrar = open( 'mensajeseguro.txt', 'r+') #Txt que contiene el texto encriptado por 2 cifrados de sustitución TextoEncriptado = TextoDescrifrar.readlines()[0] TextoDescrifrar.close() DescifrarRailFence = RailFence.Desencriptar( TextoEncriptado, NivelesRailFence) #Descrifrado por RailFence DescifradoCesar = Cesar.Rot(-N_Cesar)( DescifrarRailFence) #Descifrado por Cesar #Metodo para Hashear el texto descrifrado HashTextoDescifrado = hashlib.md5() textoAHashear = DescifradoCesar HashTextoDescifrado.update(textoAHashear.encode()) HashTextoDescencriptado = HashTextoDescifrado.hexdigest() #Validador si el hash del texto plano es el mismo que el texto descrifrado print("=================================================") if HashTextoPlano == HashTextoDescencriptado: print("El mensaje no ha sido modificado") else: print("El mensaje ha sido adulterado") print("=================================================") print("Mensaje Original:", TextoPlano)
""" Desafio: Se le solicita a usted crear un programa el cual tenga como objetivo poder enviar un mensaje seguro asegurando la integridad de este sin que este sea modificado, para esto se le pide a su equipo que construya en el lenguaje que desee un programa que sea capas de cifrar ocupando cualquier red de sustitucion que usted defina y generar un hash de un archivo de texto llamado mensajedeentrada.txt generando un nuevo archivo llamado mensajeseguro.txt en el cual posteriormente puedan con un segundo programa generar la operacion a la inversa, generando el mismo mensaje original con el adicional de poder detectar si el mensaje ha sido modificado o no. """ Texto = "Hola Mundo ñoño" Nivel_RF = 2 #Encriptado y desencriptado Cesar Cesar_Encrypt = Cesar.Rot(3)(Texto) print(Cesar_Encrypt) print(Cesar.Rot(-3)(Cesar_Encrypt)) #Encriptado y desencriptado Rail Fence RF_Encrypt = RailFence.Encriptar(Texto, Nivel_RF) print(RF_Encrypt) print(RailFence.Desencriptar(RF_Encrypt, Nivel_RF)) ############################################################### hashmd5 = hashlib.md5() stexto = "hola Altaruru, hoy es lunes 1 de Octubre de 2018" hashmd5.update(stexto.encode()) print(hashmd5.hexdigest())