Ejemplo n.º 1
0
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
        ) % TAM_ALFABETO  #aplica formula de cesar y la iguala a variable modulo
        mensajeClaro = mensajeClaro + abc[
            modulo]  #mensajeclaro se iguala al mensajeclaro + variable abc posicion modulo
        i += 1  #aumenta el contador i
    f = archivo.escribirArchivo(
        nomArchivoSalida, mensajeClaro
    )  #llama a la funcion escribir Archivo de el archico "archico.py" recibe dos parametros y los iguala a f
    if f == '':
        print('Ocurrio un error al intentar escribir en', nomArchivoSalida)
    else:
        print('El mensaje descifrado se guardo correctamente en',
              nomArchivoSalida)
Ejemplo n.º 2
0
def cifrarCesar(texto, clave, nombreArchivoSalida, cod):
    mensajeCifrado = ""
    flag = 1
    i = 0
    while (i < len(texto)):
        if (cod == "-c64"):
            mi = alfabeto.getPosicion(chr(texto[i]))
        else:
            mi = alfabeto.getPosicion(texto[i])
        if (mi == -1):
            if (cod == "-c64"):
                print(
                    "El caracter ", chr(texto[i]),
                    " no se encuentra en el alfabeto, revise la ayuda en el menú principal para añadirlo"
                )
            else:
                print(
                    "El caracter ", texto[i],
                    " no se encuentra en el alfabeto, revise la ayuda en el menú principal para añadirlo"
                )
            flag = -1
            break
        else:
            modulo = (mi + clave) % TAM_ALFABETO
            mensajeCifrado = mensajeCifrado + abc[modulo]
            i += 1
    if (flag == -1):
        print("La ejecución se detuvo")
    else:
        f = archivo.escribirArchivo(nombreArchivoSalida, mensajeCifrado)
        if f == '':
            print('Ocurrio un error al intentar escribir en',
                  nombreArchivoSalida)
        else:
            print('El mensaje cifrado se guardo correctamente en',
                  nombreArchivoSalida)
            f.close()
    sys.stdin.flush()
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
def descifrarAfin(texto, a, b, nombreArchivoSalida, cod):
    x = modinv(a, TAM_ALFABETO)
    mensajeClaro = ""
    i = 0
    while (i < len(texto)):
        ci = alfabeto.getPosicion(texto[i])
        modulo = (x * (ci - b)) % TAM_ALFABETO
        mensajeClaro = mensajeClaro + abc[modulo]
        i += 1
    if (cod == ""):
        f = archivo.escribirArchivo(nombreArchivoSalida, mensajeClaro)
        f.close()
    else:
        f = archivo.escribirArchivo64(nombreArchivoSalida, mensajeClaro)
    if f == '':
        print('Ocurrio un error al intentar escribir en', nombreArchivoSalida)
    else:
        print('Se guardo correctamente el mensaje descifrado en',
              nombreArchivoSalida)
    sys.stdin.flush()
Ejemplo n.º 5
0
def descifrarCesar(criptograma, clave, nombreArchivoSalida, cod):
    mensajeClaro = ""
    i = 0
    while (i < len(criptograma)):
        ci = alfabeto.getPosicion(criptograma[i])
        modulo = (ci - clave) % TAM_ALFABETO
        mensajeClaro = mensajeClaro + abc[modulo]
        i += 1
    if (cod == ""):
        f = archivo.escribirArchivo(nombreArchivoSalida, mensajeClaro)
    else:
        f = archivo.escribirArchivo64(nombreArchivoSalida, mensajeClaro)
    if (f == -1):
        print(
            'El mensaje no fue codificado antes de cifrar\nLa ejecución se detuvo'
        )
    elif f == '':
        print('Ocurrio un error al intentar escribir en', nombreArchivoSalida)
    else:
        print('El mensaje descifrado se guardo correctamente en',
              nombreArchivoSalida)
        f.close()
    sys.stdin.flush()
Ejemplo n.º 6
0
def encontrarK(letraMi, letraCi):  #funcion para encontrark
    mi = alfabeto.getPosicion(letraMi)  #toma  la letra en el alfabeto
    ci = alfabeto.getPosicion(letraCi)  #toma la letra cifrada del texto
    return (ci - mi) % TAM_ALFABETO  #retorna la formula para aencontrar k
Ejemplo n.º 7
0
def encontrarK(letraMi, letraCi):
    mi = alfabeto.getPosicion(letraMi)
    ci = alfabeto.getPosicion(letraCi)
    return (ci - mi) % TAM_ALFABETO