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)
#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