def descVigenere(archEnt,clave,archSal): doc=archEnt palabra="" f = archivo.abrirArchivo(doc) if f == '': print 'No se encontro el archivo '+doc else: for pal in f.readlines(): palabra=palabra+pal f.close() lg=len(palabra) k=clave lk=len(k) i=0 m="" alf=alfabeto.getAlfabeto() la=alfabeto.tamAlfabeto() while(i<lg): if(i<lk): dato=alf[((alf.index(palabra[i])-alf.index(k[i]))%la)] m=m+dato else: dato=alf[((alf.index(palabra[i])-alf.index(m[i-lk]))%la)] m=m+dato i=i+1 n = archSal fichero = archivo.escribirArchivo(n,m) 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 EN CLARO" print "*********************************************************************\n\n\n"
def descVigenere(archEnt, clave, archSal, cod): doc = archEnt palabra = "" k = "" f = archivo.abrirArchivo(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: for pal in f.readlines(): palabra = palabra + pal f.close() lg = len(palabra) for cla in h.readlines(): k = k + cla h.close() lk = len(k) i = 0 j = 0 m = "" alf = alfabeto.getAlfabeto() la = alfabeto.tamAlfabeto() while (i < lg): if (j < lk): dato = alf[((alf.index(palabra[i]) - alf.index(k[j])) % la)] m = m + dato else: dato = alf[((alf.index(palabra[i]) - alf.index(m[j - lk])) % la)] m = m + dato i = i + 1 j = j + 1 n = archSal if (cod == ""): fichero = archivo.escribirArchivo(n, m) else: fichero = archivo.escribirArchivo64(n, m) 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 EN CLARO") print( "*********************************************************************\n\n\n" )
def cifraVigenere(archEnt,clave,archSal): doc=archEnt palabra="" f = archivo.abrirArchivo(doc) if f=='': print 'No se encontro el archivo '+doc else: for pal in f.readlines(): palabra=palabra+pal f.close() k=clave lk=len(k) i=0 c="" lg=len(palabra) alf=alfabeto.getAlfabeto() la=alfabeto.tamAlfabeto() #imprimirTexto(palabra) #auxiliar=acomodarTexto(palabra) #imprimirTexto(auxiliar) while(i<lg): if(i<lk): if(palabra[i]!='\xc3'): ##print i dato= alf[((alf.index(palabra[i])+alf.index(k[i]))%la)] c=c+dato else: dato= alf[((alf.index(palabra[i]+palabra[i+1])+alf.index(k[i]))%la)] i=i+1 c=c+dato else: if(palabra[i]!='\xc3'): dato=alf[((alf.index(palabra[i])+alf.index(palabra[i-lk]))%la)] c=c+dato else: ##print palabra[i]+palabra[i+1] dato=alf[((alf.index(palabra[i]+palabra[i+1])+alf.index(palabra[i-lk]))%la)] i=i+1 c=c+dato i=i+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\n"
#!/usr/bin/python # -*- coding: utf8 -*- import os, sys import archivo ############ import alfabeto ############ IMPORTA ARCHIVOS import operator ########### TAM_ALFABETO = alfabeto.tamAlfabeto() #iguala el tamaño del alfabeto abc = alfabeto.getAlfabeto() #iguala a la funcion getAlfabeto frecuAlta = ['E', 'A', 'S', 'O', 'I', 'N', 'R', 'D', 'T'] ## definicion de frecuencias altas def analisisFrecuencia( criptograma, nomArchivoSalida): ## funcion analisisFrecuencia recibe dos parametros listaFrecu = frecuencias( criptograma ) # recibe e iguala criptograma de la funcion frecuencias en la variable listaFrecu k = verificarHipostesis( listaFrecu) ### recibe la clave de la funcion verificarHipotesis print('La clave con la que se cifró es: ', k) ###imprime la clave con la que se cifro mensajeClaro = "" i = 0 while (i < len(criptograma)): #mientras i sea menor que el criptograma ci = alfabeto.getPosicion( criptograma[i] ) #llama funcion getPosicion de archivo alfabeto y le iguala el valor de criptograma[i] a la variable ci modulo = ( ci - k
#!/usr/bin/python # -*- coding: utf8 -*- import os, sys import archivo import alfabeto import operator TAM_ALFABETO = alfabeto.tamAlfabeto() abc = alfabeto.getAlfabeto() frecuAlta = ['E', 'A', 'S', 'O', 'I', 'N', 'R', 'D', 'T'] def analisisFrecuencia(criptograma, nomArchivoSalida): listaFrecu = frecuencias(criptograma) k = verificarHipostesis(listaFrecu) print('La clave con la que se cifró es: ', k) mensajeClaro = "" i = 0 while (i < len(criptograma)): ci = alfabeto.getPosicion(criptograma[i]) modulo = (ci - k) % TAM_ALFABETO mensajeClaro = mensajeClaro + abc[modulo] i += 1 f = archivo.escribirArchivo(nomArchivoSalida, mensajeClaro) if f == '': print('Ocurrio un error al intentar escribir en', nomArchivoSalida) else: print('El mensaje descifrado se guardo correctamente en', nomArchivoSalida) #print mensajeClaro
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")
alfabeto.imprimir() elif (arg[2] == "-a"): if (numArg == 4): simbolo = arg[3] if (len(simbolo) == 1 and alfabeto.existe(simbolo) == False): alfabeto.agregarSimbolo(simbolo) elif (len(simbolo) == 2): if (simbolo[0] == '\xc3' or simbolo[0] == '\xc2'): if (alfabeto.existe(simbolo) == False): alfabeto.agregarSimbolo(simbolo) else: print('Digite un solo símbolo ') else: print('Número de argumentos incorrectos. Verifique la ayuda') elif (arg[2] == "-t"): print(alfabeto.tamAlfabeto()) elif (arg[1] == "-sc"): validaciones.validacionCesar(arg) elif (arg[1] == "-sa"): validaciones.validacionAfin(arg) elif (arg[1] == "-sva"): validaciones.validacionKasiski(arg) elif (arg[1] == "-mr"): validaciones.validacionMascara(arg) elif (arg[1] == "-caf"): validaciones.validacionFrecuencia(arg) elif (arg[1] == "-k"): validaciones.validacionKasiski(arg) else: print("EL COMANDO QUE DIGITÓ NO ES UNA OPCION VÁLIDA")