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/env python # -*- coding: utf-8 -*- import sys import analisador_lexico as al import alfabeto as alfa import automato as a #definicoes afn = a.afn alfabeto = alfa.getAlfabeto() afd = a.conversor_afd(afn, alfabeto) tokens = [] codigo = "" try: #le arquivo f = open(sys.argv[1]) for line in f: line = line.replace('\n', ' ') codigo += line except Exception, e: print e #tratamento codigo = codigo.split(" ") #faz um split por espaco while '' in codigo: #remove espacos em branco desnecessarios codigo.remove('') tokens = al.analisadorLexico(afd, codigo) for t in tokens:
#!/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")