def test_normaliza_tamanho_LIMAO(self): """ Caso key seja maior que o texto função normaliza tamanho. """ c = Cifra() self.assertEquals( c.match_size('ATACARBASESUL', 'LIMAO'), 'LIMAOLIMAOLIM')
def test_GJRLZU_chave_UVA_MORREU(self): """ O texto criptografado GJRLZU com chave UVA retorna MORREU """ c = Cifra() self.assertEquals(c.crypt('GJRLZU', 'UVA', True).upper(), 'MORREU') self.assertEquals(c.decrypt('GJRLZU', 'UVA').upper(), 'MORREU')
def test_ATACARBASESUL_chave_LIMAO_retorno_LBMCOCJMSSDCX(self): """ A criptografia de ATACARBASESUL com a chave LIMAO deve ser LBMCOCJMSSDCX """ c = Cifra() self.assertEquals( c.crypt('ATACARBASESUL', 'LIMAO').upper(), 'LBMCOCJMSSDCX')
def test_normaliza_tamanho_LIMA(self): """ A chave LIMA com um texto de 13 caracteres o retorno deve ser LIMALIMALIMAL """ c = Cifra() self.assertEquals( c.match_size('ATACARBASESUL', 'LIMA'), 'LIMALIMALIMAL')
def dump_database(): start_time = time.time() test_data = [] for x in TEST_DATABASE: print(':', end='') if (x.__getitem__(0) != ""): try: cifra = Cifra(x.__getitem__(0)) test_data.append((cifra, x.__getitem__(1))) except: print("Cifra com problemas: ", x.__getitem__(0)) traceback.print_exc() file_pi = open("cifras.pickle", 'wb') pickle.dump(test_data, file_pi) file_pi.close() print("\nData dump: " + str(len(test_data)) + " songs in " + str((time.time() - start_time)) + " seconds")
def test_alfabeto_A(self): """ Testa alfabeto A """ c = Cifra() self.assertEquals(str(c.grid['a']), 'abcdefghijklmnopqrstuvwxyz')
def test_chave_maior_que_o_texto_base_retornar_exception(self): """ Para chaves maiores que o texto sistema levanta uma exception. """ c = Cifra() self.assertRaises(ValueError, c.crypt, 'a', 'bb')
def test_retornar_None_para_o_que_nao_estiver_traduzido(self): """ Para o que não estiver no grelha de Vigenère retorna None. """ c = Cifra() self.assertEquals(c.translate(1, 'I'), "")
soup_songs_list = soupArtist.find(class_="list-links art_musics alf all") soup_songs_links = soup_songs_list.find_all("a", class_="art_music-link") links = [] for link in soup_songs_links: links.append(link.get('href')) problematic_chords = set() problematic_songs = [] total_chords = 0 parsed_chords = 0 for link in links: legivel = True try: cifra = Cifra("https://www.cifraclub.com.br" + link) for chord in cifra.present_chords: total_chords += 1 try: ch = Chord(chord) print(chord, ": ", ch.components()) parsed_chords += 1 except: print("I see a ", chord, "chord on the title", link, ", but I can't read it! :(") legivel = False problematic_chords.append(chord) problematic_songs.append(link) except: print("There are no chords here, pal.") if (not legivel):
def test_letra_A_no_alfabeto_C_deve_retorno_C(self): """ A letra A na grelha de vigenére deve retornar C no alfabeto C """ c = Cifra() self.assertEquals(c.translate('A', 'C'), 'c')
def test_letra_A_no_alfabeto_B_deve_retorno_B(self): """ A letra A na grelha de vigenére deve retornar B no alfabeto B """ c = Cifra() self.assertEquals(c.translate('A', 'B'), 'b')
def test_letra_A_no_alfabeto_A_deve_retorno_A(self): """ A letra A na grelha de vigenére deve retornar A no alfabeto A """ c = Cifra() self.assertEquals(c.translate('A', 'A'), 'a')
def test_alfabeto_C(self): """ Testa alfabeto C """ c = Cifra() self.assertEquals(str(c.grid['c']), 'cdefghijklmnopqrstuvwxyzab')
def test_alfabeto_B(self): """ Testa alfabeto B """ c = Cifra() self.assertEquals(str(c.grid['b']), 'bcdefghijklmnopqrstuvwxyza')
# coding: utf-8 import argparse from cifra import Cifra if __name__ == "__main__": parser = argparse.ArgumentParser(description="Cifra Vigenére") parser.add_argument("-k", "--key", help="Chave para criptografia.", required=True, type=str, nargs=1) parser.add_argument("-c", "--crypt", help="Criptografar frase.", type=str, nargs=1) parser.add_argument("-d", "--decrypt", help="Descriptografar frase.", type=str, nargs=1) args = parser.parse_args() key = args.key action = "crypt" if args.crypt is not None else "decrypt" text = getattr(args, action)[0] c = Cifra() print getattr(c, action)(text, key).upper()
def test_MORREU_chave_UVA_retorno_GJRLZU(self): """ A criptografia de MORREU com a chave UVA deve ser GJRLZU """ c = Cifra() self.assertEquals(c.crypt('MORREU', 'UVA').upper(), 'GJRLZU')
def test_letra_Z_no_alfabeto_I_deve_retorno_H(self): """ A letra Z na grelha de vigenére deve retornar H no alfabeto I """ c = Cifra() self.assertEquals(c.translate('Z', 'I'), 'h')
break def converter_e_enviar(clienteSoc, conteudo): clienteSoc.send(bytearray(gerar_hash(conteudo), 'utf-8')) def printar_comandos(): custom_print("--------------------------------------------------------------------\n") custom_print("Lista de comandos: \n-QUIT = sair do chat\n-LIST = lista os usuários conectados\n-SEND mensagem TO usuario = Para enviar uma mensagem, substituindo os campos corretamente.\n-HELP = mostra novamente a lista de comandos") custom_print("--------------------------------------------------------------------\n") def gerar_hash(msg): return hashlib.sha224(bytearray(msg, "utf-8")).hexdigest() + "HASH" + msg if __name__ == '__main__': try: encripter = Cifra() clienteSoc = socket(AF_INET, SOCK_STREAM) clienteSoc.connect((host,porta)) custom_print("---------------------------\n") custom_print("Bem vindo ao Terminal Chat!\n") custom_print("---------------------------\n") receber_resposta_servidor(clienteSoc, True) while True: nick = input( 'Informe o seu nome de usuario: \n') converter_e_enviar(clienteSoc, nick) msg = receber_resposta_servidor(clienteSoc, True) if "com sucesso" in msg: break