#http://excript.com/python/comparacao-de-string-python.html#:~:text=O%20Python%20disponibiliza%202%20fun%C3%A7%C3%B5es,%C3%A9%20retornado%20a%20respectiva%20letra. # chr() o codigo ASCII é passado e assim é retornado a respectiva letra #https://docs.python.org/3/library/secrets.html#module-secrets #secrets.randbelow() gera numeros aleatórios def gerar_dicionario(): import secrets dicionario = dict() valores = [] for i in range(97,123): # a cada passada do laço uma letra do alfabeto será adicionada ao dicionário dicionario[chr(i)] = "" valor = "" while dicionario[chr(i)] == "": # Enquanto cada valor não for preenchido... x = 0 while x < 4: # Gerando o valor valor += str(secrets.randbelow(10)) x += 1 if valor not in valores and valor != "": # se o valor tal ainda não foi colocado na lista valores e for diferente de "", esse valor será adicionado no dicionário valores.append(valor) dicionario[chr(i)] = valor dicionario[chr(32)] = str(secrets.randbelow(10))*4 # Adicionando o espaço return dicionario def codificar(): dicionario = gerar_dicionario() mensagem = str(input("Digite a mensagem que deseja codificar: ")) codificacao = "" mensagem = list(mensagem) for letra in mensagem: codificacao += dicionario[letra] return codificacao def decodificar(): dicionario = gerar_dicionario() mensagem = input("Digite a mensagem que deseja decodificar: ") decodificacao = "" for i in range (0,len(mensagem),4): for chave, valor in dicionario.items(): if valor == mensagem[i:i+4]: break decodificacao += chave return(decodificacao) def menu(): while True: print("Selecione a opção desejada abaixo: ") print("1 - Codificar") print("2 - Decodificar") opcao = input("") if opcao == "1": mensagem_codificada = codificar() print("Essa é a sua mensagem codificada: ", mensagem_codificada) resposta = input("Dejesa executar novamente? s/n ") if resposta == "s": print("Voltando ao menu...") else: print("Execução encerrada") break if opcao == "2": mensagem_decodificada = decodificar() print("Essa é a mensagem decodificada: ", mensagem_decodificada) resposta = input("Dejesa executar novamente? s/n ") if resposta == "s": print("Voltando ao menu...") else: print("Execução encerrada") break if opcao != "1" and opcao != "2" and opcao != "3" and opcao != "4" and opcao != "5": print("Opção inválida, tente novamente.") menu()