def validacionCesar(argumentos): texto = "" if (len(argumentos) == 6): if (argumentos[5] == "-c64"): if (argumentos[2] == "-c"): f = archivo.abrirArchivo64(argumentos[3]) if f == '': print('No se encontro el archivo ' + argumentos[3]) else: texto = f clave = cesar.obtenerEntero(argumentos[4]) if (clave != -1): start_time = time() cesar.cifrarCesar(texto, clave, argumentos[3] + ".cif", "-c64") elapsed_time = time() - start_time print("Tiempo transcurrido: %.10f segundos." % elapsed_time) elif (argumentos[2] == "-d"): f = archivo.abrirArchivo(argumentos[3]) if f == '': print('No se encontro el archivo ' + argumentos[3]) else: for pal in f.readlines(): texto = texto + pal f.close() clave = cesar.obtenerEntero(argumentos[4]) nomArchivoDec = argumentos[3].replace('.cif', '.dec') if (clave != -1): start_time = time() cesar.descifrarCesar(texto, clave, nomArchivoDec, "-c64") elapsed_time = time() - start_time print("Tiempo transcurrido: %.10f segundos." % elapsed_time) else: print( "Si deseas codificar o decodificar usa la bandera -c64 en lugar de ", argumentos[5]) else: if (len(argumentos) != 5): print("\nEl número de parámetros es incorrecto") print( "Revisar la ayuda del algoritmo de cesar: python3 principal.py -sc\n" ) else: if (argumentos[2] == "-c"): f = archivo.abrirArchivo(argumentos[3]) if f == '': print('No se encontro el archivo ' + argumentos[3]) else: for pal in f.readlines(): texto = texto + pal f.close() clave = cesar.obtenerEntero(argumentos[4]) if (clave != -1): start_time = time() cesar.cifrarCesar(texto, clave, argumentos[3] + ".cif", "") elapsed_time = time() - start_time print("Tiempo transcurrido: %.10f segundos." % elapsed_time) elif (argumentos[2] == "-d"): f = archivo.abrirArchivo(argumentos[3]) if f == '': print('No se encontro el archivo ' + argumentos[3]) else: for pal in f.readlines(): texto = texto + pal f.close() clave = cesar.obtenerEntero(argumentos[4]) nomArchivoDec = argumentos[3].replace('.cif', '.dec') if (clave != -1): start_time = time() cesar.descifrarCesar(texto, clave, nomArchivoDec, "") elapsed_time = time() - start_time print("Tiempo transcurrido: %.10f segundos." % elapsed_time) else: print("\nEl modo ", argumentos[2], " es incorrecto") print( "Revisar la ayuda del algoritmo de cesar: python3 principal.py -sc\n" )
def cifraVigenere(archEnt, clave, archSal, cod): doc = archEnt palabra = "" k = "" if (cod == ""): f = archivo.abrirArchivo(doc) else: f = archivo.abrirArchivo64(doc) h = archivo.abrirArchivo(clave) if f == '' or h == '': if (f == ''): print('No se encontro el archivo ' + doc) else: print('No se encontro el archivo ' + clave) else: if (cod == ""): for pal in f.readlines(): palabra = palabra + pal f.close() else: palabra = f for cla in h.readlines(): k = k + cla h.close() lk = len(k) i = 0 j = 0 c = "" lg = len(palabra) alf = alfabeto.getAlfabeto() la = alfabeto.tamAlfabeto() flag = 1 # imprimirTexto(palabra) # try: while (i < lg): if (j < lk): if (cod == ""): dato = alf[((alf.index(palabra[i]) + alf.index(k[j])) % la)] else: p1 = chr(palabra[i]) dato = alf[((alf.index(p1) + alf.index(k[j])) % la)] c = c + dato else: if (cod == ""): dato = alf[( (alf.index(palabra[i]) + alf.index(palabra[j - lk])) % la)] else: p1 = chr(palabra[i]) p2 = chr(palabra[j - lk]) dato = alf[((alf.index(p1) + alf.index(p2)) % la)] c = c + dato i = i + 1 j = j + 1 if (flag != -1): n = archSal fichero = archivo.escribirArchivo(n, c) if fichero == '': print('Ocurrio un error al intentar escribir en ', n) else: fichero.close() print( "\n*********************************************************************" ) print(" SE GENERO EL ARCHIVO ", n, " CON EL MENSAJE CIFRADO") print( "*********************************************************************\n\n" ) else: print("La ejecución se detuvo")
def validacionAfin(argumentos): texto = "" if (len(argumentos) == 7): if (argumentos[6] == "-c64"): if (argumentos[2] == "-c"): f = archivo.abrirArchivo64(argumentos[3]) if f == '': print('No se encontro el archivo ' + argumentos[3]) else: texto = f a = afin.obtenerA(argumentos[4]) if (a != -1): if (afin.verificarCoprimo(a) != True): print('El núemero a es invalido') print( 'El número debe ser primo con el tamaño del alfabeto' ) else: b = afin.obtenerB(argumentos[5]) if (b != -1): start_time = time() afin.cifrarAfin(texto, a, b, argumentos[3] + ".cif", "-c64") elapsed_time = time() - start_time print("Tiempo transcurrido: %.10f segundos." % elapsed_time) elif (argumentos[2] == "-d"): f = archivo.abrirArchivo(argumentos[3]) if f == '': print('No se encontro el archivo ' + argumentos[3]) else: for pal in f.readlines(): texto = texto + pal f.close() a = afin.obtenerA(argumentos[4]) if (a != -1): if (afin.verificarCoprimo(a) != True): print('El número a es invalido') print( 'El número debe ser primo con el tamano del alfabeto' ) else: b = afin.obtenerB(argumentos[5]) nomArchivoDec = argumentos[3].replace( '.cif', '.dec') if (b != -1): start_time = time() afin.descifrarAfin(texto, a, b, nomArchivoDec, "-c64") elapsed_time = time() - start_time print("Tiempo transcurrido: %.10f segundos." % elapsed_time) else: print("\nEl modo ", argumentos[2], " es incorrecto") print( "Revisar la ayuda del algoritmo de afin: python3 principal.py -sa\n" ) else: print( "Si deseas codificar o decodificar usa la bandera -c64 en lugar de ", argumentos[6]) else: if (len(argumentos) != 6): print("\nEl número de parámetros es incorrecto") print( "Revisar la ayuda del algoritmo de afín: python3 principal.py -sa\n" ) else: if (argumentos[2] == "-c"): f = archivo.abrirArchivo(argumentos[3]) if f == '': print('No se encontro el archivo ' + argumentos[3]) else: for pal in f.readlines(): texto = texto + pal f.close() a = afin.obtenerA(argumentos[4]) if (a != -1): if (afin.verificarCoprimo(a) != True): print('El núemero a es invalido') print( 'El número debe ser primo con el tamaño del alfabeto' ) else: b = afin.obtenerB(argumentos[5]) if (b != -1): start_time = time() afin.cifrarAfin(texto, a, b, argumentos[3] + ".cif", "") elapsed_time = time() - start_time print("Tiempo transcurrido: %.10f segundos." % elapsed_time) elif (argumentos[2] == "-d"): f = archivo.abrirArchivo(argumentos[3]) if f == '': print('No se encontro el archivo ' + argumentos[3]) else: for pal in f.readlines(): texto = texto + pal f.close() a = afin.obtenerA(argumentos[4]) if (a != -1): if (afin.verificarCoprimo(a) != True): print('El número a es invalido') print( 'El número debe ser primo con el tamano del alfabeto' ) else: b = afin.obtenerB(argumentos[5]) nomArchivoDec = argumentos[3].replace( '.cif', '.dec') if (b != -1): start_time = time() afin.descifrarAfin(texto, a, b, nomArchivoDec, "") elapsed_time = time() - start_time print("Tiempo transcurrido: %.10f segundos." % elapsed_time) else: print("\nEl modo ", argumentos[2], " es incorrecto") print( "Revisar la ayuda del algoritmo de afin: python3 principal.py -sa\n" )
def cifradoMR(arch,masc,cod): mensaje="" perforaciones=[] if(cod==""): f = archivo.abrirArchivo(arch) else: f = archivo.abrirArchivo64(arch) p = archivo.abrirArchivo(masc) if f=='' or p=='': if f=='': print ('No se encontro el archivo ',arch) if p=='': print ('No se encontro el archivo ',masc) sys.exit() if(cod==""): for pal in f.readlines(): mensaje=mensaje+pal f.close() else: mensaje=f numC=len(mensaje) n=int(math.ceil(math.sqrt(numC))) for per in p.readlines(): perforaciones.append(per) p.close() if(int(perforaciones[0])<n): print ("El tamaño de la matriz es muy pequeño, debe tener un tamaño minimo de ",n) sys.exit() x=int(numC/4) if(x<(numC/4.0)): x=x+1 if((len(perforaciones)-1)!=x): print ("El numero de perforaciones 'X' no es el correcto") print ("La mascara debe tener ",x," perforaciones"," y tiene :",(len(perforaciones)-1)) sys.exit() matriz=[] mascara=[] n=int(perforaciones[0]) for i in range(n): matriz.append(["null"]*n) mascara.append(["-"]*n) llenarMacara(mascara,perforaciones) if(len(mascara)==n and len(mascara[i])==n): mascara2=rotar(mascara,n) mascara3=rotar(mascara2,n) mascara4=rotar(mascara3,n) else: print ("La mascara debe tener tamaño ",n,"x",n) sys.exit() verificarMascara(mascara,mascara2,mascara3,mascara4) numP=len(perforaciones)-1 l=0 hubicarLetras(matriz,mascara,mensaje,l) l=l+numP hubicarLetras(matriz,mascara2,mensaje,l) l=l+numP hubicarLetras(matriz,mascara3,mensaje,l) l=l+numP hubicarLetras(matriz,mascara4,mensaje,l) l=l+numP completrar(matriz,mensaje,numC) cif=generarCif(matriz,cod) sal = arch+".cif" print (sal) fichero = archivo.escribirArchivo(sal, cif) if fichero=='': print ('Ocurrio un error al intentar escribir en ', n) else: fichero.close() print ("\n*********************************************************************") print (" SE GENERO EL ARCHIVO ", sal," CON EL MENSAJE CIFRADO") print ("*********************************************************************\n\n")