def substitution(fileCript, fileDecript):
    table=[]
    tmp = set(range(0,256))
    tmp1 = bytearray(tmp)
    i = 0
    
    while True:
        j = 0
        while len(tmp) > 0:
            if unichr(j).encode('Latin-1') == fileDecript[i]:
                flag = 0
                #testa se o arquivo já existe na tabela, caso não insere na tabela
                for k in table:
                    temp = k.decode('Latin-1')
                    aux = ord(temp[0])
                    if j == aux:
                        flag = 1
                if flag == 0:
                    tmp1 = [j, fileCript[i]]
                    table.append(bytearray(tmp1))
                    print (j)
                    tmp.remove(j)
                    j = 0
                    break
            j += 1
            if j > len(tmp):
                break
        i += 1
        if len(fileDecript) == i:           #sai quando chegou ao final da entrada
            break
        if len(table) == 256:       #ou quando a tabela esta completa
            break
    # pega a tabela gerada e roda o algoritmo para decifrar       
    result = DecriptFunctions.decifraSubstituicao(table, fileCript)
    print ('Tabela:')
    for i in table:
        tmp1 = i.decode('Latin-1')
        print (tmp1)
    Util.display(result)
Пример #2
0
        #monta a tabela
        tab = Util.montaTabela()

        #for i in tab:
        #    x = i.decode('Latin-1')
        #   print unichr(ord(x[0])).encode('Latin-1'), unichr(ord(x[1])).encode('Latin-1')        

        if op == '1':
             #le o arquivo
            ent = Util.readFile("entrada.txt")
            #Chama a função de criptografia Cigra de Substituição
            cS = CriptFunctions.cifraSubstituicao(tab, ent)
            #imprime a cifra
            Util.display(cS)
        elif op == '2':
            #faz a descriptografia
            dS = DecriptFunctions.decifraSubstituicao(tab, cS)
            #imprime a descriptografia
            Util.display(dS)
        elif op == '3':
            #le o arquivo
            fileCript = Util.readFile("saida1.txt")
            fileDecript = Util.readFile("entrada.txt")
            #fileCript = Util.readFile('arquivos/outputs/pg74.txt.enc')
            #fileDecript = Util.readFile('arquivos/inputs/pg74.txt')

            #Ataque a função com arquivo em claro
            SearchKeys.substitution(fileCript, fileDecript)      
             
    elif opcao == '5':
        break