Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE PAULISTA DAVID DE O. NOGUTI RA: D286HE-3 DIEGO COSTA A. RA: D28IFI-4 NATAN BOLONI B. RA: D47BFF-9 GUSTAVO DOS S. RA: N123JE-0 WESLLEY LEANDRO A. RA: N21386-8 CRIPTOGRAFIA SÃO PAULO 2017 DAVID DE O. NOGUTI RA: D286HE-3 DIEGO COSTA A. RA: D28IFI-4 NATAN BOLONI B. RA: D47BFF-9 GUSTAVO DOS S. RA: N123JE-0 WESLLEY LEANDRO A. RA: N21386-8 CRIPTOGRAFIA Trabalho apresentado ao curso de Ciência da computação. Universidade Paulista – Cidade Universitária. Orientador: Prof. Genivaldo São Paulo 2017 OBJETIVO PROPOSTO OBJETIVOS GERAIS O objetivo do trabalho é desenvolver um programa que consiga criptografar e descriptografar uma mensagem qualquer inserida no computador. OBJETIVOS ESPECÍFICOS Desenvolver um programa de criptografia utilizando uma técnica já existente, no caso a Cifra de César, uma cifra de chave simétrica e simples. LISTA DE FIGURAS FIGURA 1: Cifra de César..........................................................................................8 SUMÁRIO OBJETIVO PROPOSTO.............................................................................................. 0 INTRODUÇÃO............................................................................................................. 0 1. CONCEITO DE CRIPTOGRAFIA............................................................................. 1 2. TÉCNICAS CRIPTOGRÁFICAS MAIS UTILIZADAS............................................... 2 2.1 CHAVE SIMÉTRICA............................................................................................... 2 2.1.1 DES (Data Encryption Standard)..................................................................... 2 2.1.2 IDEA (International Data Encryption Algorithm)………………………………… 3 2.1.3 RC (Ron's Code ou Rivest Cipher)……………………………………………….. 3 2.1.4 AES (Advanced Encryption Standard)…………………………………………… 3 2.2 CHAVE ASSIMÉTRICA.......................................................................................... 4 2.2.1 RSA (Rivest, Shamir and Adleman)……………………………………………… 4 3. REDES SEM FIO..................................................................................................... 4 3.1 WEP....................................................................................................................... 4 3.2 WPA E WPA2......................................................................................................... 5 4. DISSERTAÇÃO........................................................................................................ 5 4.1. ESTRUTURAÇÃO, CONCEITOS E FUNDAMENTAÇÃO.................................... 5 4.2. BENEFÍCIOS EM RELAÇÃO ÀS TÉCNICAS ANTERIORES............................... 6 4.3. APLICAÇÕES QUE FAZEM OU FIZERAM USO DA TÉCNICA........................... 7 4.4. COMPARAÇÃO ENTRE ESTA TÉCNICA E OUTRAS CONHECIDAS................ 7 4.5. VULNERABILIDADE FALHAS.............................................................................. 7 4.6. MELHORIAS PROPOSTAS E IMPLEMENTADAS............................................... 8 5. PROJETO (ESTRUTURA) DO PROGRAMA........................................................... 9 6. CONSIDERAÇÕES FINAIS................................................................................... 13 7. BIBLIOGRAFIA....................................................................................................... 14 INTRODUÇÃO A criptografia é usada em vários aspectos no meio tecnológico, transações bancarias, senhas de usuários ou em até alguma mensagem secreta. Nós não vemos, mas ela está presente para garantir a segurança da informação que transita pela grande rede de computadores, existem vários tipos de criptografia que são usados em diferentes casos desde o mais comum até o mais complexo que precisa de alta segurança. Esse método de segurança é utilizado porque há muitas pessoas mal-intencionadas que querem roubar informações sigilosas de outros, assim o jeito de garantir que o dado vai chegar ao destinatário sem ser interceptado e decifrado é criptografando o mesmo. Quando falamos em criptografia pensamos em algo complexo e difícil, e é, o principal motivo dela existir é esse, o de não deixar brechas para que saibam do que está sendo transmito de um lugar para outro ou o que está armazenado em algum local. Ela está aí para garantir nossa segurança em tudo o que fizermos na grande rede de computadores. CONCEITO DE CRIPTOGRAFIA A criptografia é usada a muito tempo pela humanidade, o modo de criptografia era transformar uma letra em outra letra ou símbolo que a outra pessoa também conhecia assim as duas tinhas como saber o que estava escrito na carta. Hoje não é muito diferente, o princípio é o mesmo. Como foi citado existem vários tipos de criptografia de dados, um dos mais comuns e fáceis de usar e entender é a Cifra de Cesar que consiste basicamente em tocar algum caractere da tabela ASCII por outro de acordo com o seu número representante somado a chave. A criptografia não é usada somente para transferência de dados na internet, ela usada também para assegurar dados de um armazenamento local. Vale ressaltar que a criptografia não impede de o dado ser interceptado e sim garante a autenticidade e a dificuldade para decifra-lo. TÉCNICAS CRIPTOGRÁFICAS MAIS UTILIZADAS CHAVE SIMÉTRICA A chave simétrica é o tipo de chave mais simples, pois utiliza apenas uma única chave tanto para realizar a criptografia quanto a descriptografia. Dentre os algoritmos de criptografia mais comuns que utilizam esse tipo de chave estão o DES, o IDEA, o RC e o AES. DES (Data Encryption Standard) A criptografia Data Encryption Standard, chamada de DES, é uma criptografia de chave simétrica. Foi criada na década de 70 pelo National Bureau of Standards junto ao National Security Agency, com o intuito de criar um padrão para a proteção de dados. O primeiro protótipo criado foi feito pela IBM (International Business Machines), que deram a esse algoritmo o nome de LUCIFER. Em 1976, o DES foi definido como norma federal nos EUA. O Data Encryption Standard utiliza uma chave feita de 56 bits somado a 8 bits de paridade, ou seja, a criptografia é realizada em blocos de 64 bits. O processo de cifragem ocorre em algumas etapas, a reordenação dos bits, a duplicação e reordenação de poucos bits, e finalmente a retirada de alguns, para que a saída da criptografia seja do mesmo tamanho que a entrada. IDEA (International Data Encryption Algorithm) O algoritmo IDEA foi inventado em 1990 na Europa por James L. Massey e Xueija Lai. É um algoritmo simétrico que utiliza chave de 128 bits. Ele é usado tanto para criptografia quanto para descriptografia e seu sistema de encriptação é através do ajuntamento de grupos algébricos distintos, são eles: Xor, multiplicação módulo 2 16 +1 e Adição módulo 216. O texto é dividido em 4 blocos de 16 bits e são feitas várias operações conjuntas até o texto ser totalmente encriptado. RC (Ron's Code ou Rivest Cipher) A criptografia de nome Rivest Cipher (RC), foi criada por Ronald Rivest, um dos fundadores da empresa RSA Security. A RC não é uma única cifra, existem diversos tipos de Rivest Cipher, desde a RC1 que nunca foi publicada, a RC3 que teve um problema antes mesmo de ser usada, até a RC6 que foi a última cifra criada por Ronald. Cada uma destas cifras tinham aspectos diferentes e grande parte não tinha relações, a RC2 por exemplo era uma cifra de bloco que utilizava uma chave variável de até 128 bytes e trabalhava com blocos de 64 bits, a RC4 foi a cifra de fluxo mais utilizada do mundo e aplicada frequentemente para proteger comunicações por ser extremamentesimples, a RC5 é uma cifra de bloco que trabalha com blocos de 32, 64 ou 128 bits, e a RC6 que foi baseada na sua antecessora e utiliza blocos de 128 bits e aceita chaves de 128, 192 e 256 bits. AES (Advanced Encryption Standard) O Advanced Encryption Standard (AES) foi produto de uma competição que ocorreu de 1997 até 2000, promovida pelo National Institute of Standards and Technology dos EUA para substituir o DES que já vinha sendo utilizado há muitos anos. Em 1997 o processo seletivo começou e se arrastou por 3 anos. Para encontrar um substituto ao DES, algumas especificações foram estabelecidas, a cifra teria que ser simétrica e de bloco, capaz de ter aumento na chave, pudesse ser implementável em hardware ou software entre outras especificações. Após cumpridas as especificações, segundo Leopoldo A.P. Mathias (2005), era julgado a segurança, ou seja, a dificuldade da criptoanálise, a eficiência computacional, requisitos de memória, adequação a hardware e software, e a simplicidade da cifra. Em 2000 foi tido como vitorioso, o algoritmo Rijndael criado por Vincent Rijment e Joan Daemen, que era uma cifra de blocos, com chave e blocos, ambos de 128, 192 ou 256 bits. CHAVE ASSIMÉTRICA A chave assimétrica trabalha com duas chaves, uma privada e a outra pública. Toda mensagem enviada é codificada com uma chave pública, e só pode ser decodificada com uma chave privada, ou seja, apenas a chave privada decodifica a chave pública e vice-versa. Dos algoritmos mais comuns que utilizam esse tipo de chave podemos citar o RSA e o ElGamal. RSA (Rivest, Shamir and Adleman) O sistema de criptografia RSA foi inventado na década de 70 por dois cientistas da computação e um matemático, eles Ronald Rivest, Adi Shamir e Leonard Adleman trabalhavam no MIT (Massachusetts Institute of Technology). Como esse tipo de criptografia é assimétrico o RSA funciona com o princípio matemático da multiplicação de números primos para a geração das chaves e para descobrir isso é através da fatoração do mesmo, porem quando estamos falando de números extremamente grandes torna-se impossível descobrir a mensagem pois teríamos que fatorar todo esse número e depois descobrir os números primos que foram multiplicados e isso levaria anos e anos para ser descoberto. REDES SEM FIO WEP O WEP (Wired-Equivalent Privacy) é um dos algoritmos de segurança mais usados no mundo foi um dos primeiros inventado para proteção de redes sem fio (wi-fi), ele encripta os dados que passam pela rede assim dificultando sua descoberta, porem sua vulnerabilidade é muito grande como se trata de um sistema 128 bits o número de combinações de palavras passe ficam limitados assim facilitando quebra-lo com um simples software malicioso. Por esse motivo desde 2004 ele deixou de receber suporte assim deixando de ser um protocolo padrão. WPA E WPA2 Por conta dos problemas de segurança do WEP, foi desenvolvido o padrão de segurança 802.11i que, durante sua produção, foi criado como melhoria ao WEP, o WPA que serviu de medida emergencial até o término da produção do 802.11i. O WPA foi uma melhoria que não exigia a troca de hardware para seu funcionamento, ou seja, todos os aparelhos que continham o WEP poderiam utilizar o sistema caso o firmware do mesmo fosse atualizado. Esse padrão deixou de usar vetores de inicialização e uso de chave fixa e passou a usar uma chave que era trocada periodicamente, o que trouxe maior segurança, porém, ainda é possível quebrar chaves de poucos caracteres, mas ao passar de 20 caracteres, a demora para a quebra desta chave seria enorme o que tornaria o ato inviável. Em 2004 a versão final do padrão 802.11i foi validada e foi assim criado o WPA2, que tinha como principal diferença em relação ao WPA, o uso do AES, que é mais seguro e também mais pesado que o algoritmo RC4 utilizado pelo antecessor. DISSERTAÇÃO ESTRUTURAÇÃO, CONCEITOS E FUNDAMENTAÇÃO 5.1.2 CIFRA DE CÉSAR A cifra de césar é um tipo de criptografia muito antigo usado pelo imperador romano para enviar mensagens que não poderiam ser lida por outra pessoa, esse tipo de criptografia é composto por substituição monoalfabética, onde cada letra será substituída por outra no alfabeto. De acordo com historiadores, Júlio César usava essa forma de criptografia com o intuito de enviar mensagens aos seus generais sem o risco delas acabarem entregando eles caso fossem interceptadas, o método que ele usava era de a cada letra pular 3 casas no alfabeto, fazendo assim o A ser o D e assim por diante. Figura 1: Cifra de César (Por Cepheus, https://commons.wikimedia.org/wiki/File:Caesar3.svg) A cifra de césar é composta por substituição monoalfabética, onde cada letra será substituída por outra no alfabeto. BENEFÍCIOS EM RELAÇÃO ÀS TÉCNICAS ANTERIORES As técnicas anteriores utilizavam métodos parecidos, porém com maior facilidade de ser decifrada, pois pegava a primeira letra do alfabeto e trocava pela última e assim sucessivamente. Na cifra de César, uma letra é trocada por outra de acordo com a chave que o usuário escolher, sendo ela 5, a letra A seria trocada pela letra F. Por conta de ser um processo simples de ser implementado em software, o código acaba sendo enxuto e de rápido processamento, não necessitando de um aparelho de alto desempenho. Esta cifra traz simplicidade de implementação se comparado com outras cifras que, por serem mais complexas, deixam o código mais extenso e pesado. APLICAÇÕES QUE FAZEM OU FIZERAM USO DA TÉCNICA A cifra de Cesar hoje não é usada em quase nenhum tipo de prevenção a segurança pelo motivo de ser facilmente quebrada. COMPARAÇÃO ENTRE ESTA TÉCNICA E OUTRAS CONHECIDAS A cifra de césar é monoalfabética e funciona da seguinte maneira, cada caractere possui um código numérico na tabela ASCII, a cifra passa caractere por caractere do texto somando o seu valor representante pela chave numérica que foi definida, e o valor resultante é sua criptografia. Em sua descriptografia ocorre o processo inverso, ou seja, ao invés de somar a chave ele a subtrai. Uma cifra de substituição semelhante a cifra de césar é a cifra de Vigenère. A utilização de uma chave mais longa é a diferença entre elas. A criptografia é realizada através de uma tabela com o abecedário escrito 26 vezes em linhas diferentes, deslocando uma letra para a esquerda em relação a letra anterior. VULNERABILIDADE FALHAS Apesar de ter sido muito útil na época em que foi criada, a cifra de césar, por possuir apenas uma chave monoalfabética, ao descobri-la já seria possível descriptografar o texto todo, o que torna esse tipo de criptografia fácil de ser quebrada. Além disso, por ser uma técnica que criptografa caractere por caractere, a mensagem cifrada resulta em um texto com o mesmo número de caractere, deixando-a menos segura. E por ser uma das primeiras técnicas utilizadas, basta um conhecimento básico em criptografia para conseguir desvendá-la. MELHORIAS PROPOSTAS E IMPLEMENTADAS Foi adicionado um esquema na chave do código, onde a soma do caractere com a chave ficaria entre 11 e 127, fazendo com que se ficasse menor que 11 o código automaticamente somava +117 e se for maior que 127 subtrai 117, fazendo com que a criptografia sempre trabalhe com dentro de uma área dentro da tabela ascii que não possua caracteres em branco, ou seja evitando bugs na mesma. CONSIDERAÇÕES FINAIS Com a realização dessa APS foi possível ampliar o conhecimento do grupo sobre a criptografia em geral, e mostrar com mais clareza seus conceitos e aplicações, mais especificamente a cifra de césar que foi a técnica criptográfica utilizada na realização deste trabalho. O objetivo geral deste projeto foi desenvolver um programa capaz de realizar a criptografia e a descriptografia de um texto inserido. Para esse processo foi utilizado a cifra de césar, que consiste em um método simples, porém eficaz tendo em vista o objetivo de aprofundar o conhecimento e facilitar ocompreendimento da área criptográfica. Ao término do projeto obteve-se êxito, pois apesar das dificuldades na criação do programa, que inclusive serviu para reforçar ainda mais as pesquisas e abranger o conhecimento do tema, seu funcionamento no final proporcionou uma grande gratificação para o grupo. BIBLIOGRAFIA Daniela Gonzáles,Tipos de criptografia, Disponível em: http://idgnow.com.br/seguranca/2007/10/05/idgnoticia.2007-10-05.1318584961 (acessado em 18/11/2017 às 17:00) Ericksen Viana, Criptografia, conceito e aplicações. Disponível em: < https://www.devmedia.com.br/criptografia-conceito-e-aplicacoes-revista-easy-net-magazine-27/26761%3E (acessado em 13/05/2018 às 20:09) Cesar Augusto Romagnolo, O que é criptografia? Disponível em: https://www.oficinadanet.com.br/artigo/443/o_que_e_criptografia (acessado em 13/05/2018 às 20:11) Laís Berlatto, DES. Disponível em: https://pt.slideshare.net/LaisBerlatto2/data-encryption-standard-des-3-des-triplo-des (acessado em 13/05/2018 às 20:15) Leopoldo A. P. Mathias, AES. Disponível em: https://www.gta.ufrj.br/grad/05_2/aes/ (acessado em 13/05/2018 às 20:12) Carlos E. Morimoto, Redes wireless, disponível em: http://www.hardware.com.br/tutoriais/padroes-wireless/pagina8.html (acessado em 13/05/2018 às 20:14) Felipe Demartini, WEP WPA WPA2, Disponível em: https://www.tecmundo.com.br/wi-fi/42024-wep-wpa-wpa2-o-que-as-siglas-significam-para-o-seu-wifi-.htm (acessado em 13/05/2018 às 20:17) ANEXOS PROJETO (ESTRUTURA) DO PROGRAMA. //Inclusão de bibliotecas #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #include <locale.h> int chave; //Declara váriavel chave char frase [128]; //Declara vetor frase com 128 índices void LER_CHAVECRIPT(){ //Início da função de leitura da chave de criptografia inicio: //Define ponto para comando goto system("cls"); //Limpa console printf("\n\t\t\t --> Char Is Hard Program <--"); //Imprime no console printf("\n\n Digite uma chave numérica de 1 a 116 e pressione a tecla Enter: "); //Imprime no console scanf("%d",&chave); //Lê tecla digitada e armazena na variável chave setbuf(stdin, NULL); //Limpa buffer do teclado if(chave==0){ //Verifica se a variável chave é igual a 0 printf("\n\n Chave inválida!! Aperte qualque tecla e tente novamente..."); //Imprime no console getch(); //Captura tecla goto inicio; //Retorna para linha inicio } } void LER_CHAVEDESCRIPT(){ //Início da função de leitura da chave de descriptografia inicio: //Define ponto para comando goto system("cls"); //Limpa console printf("\n\t\t\t --> Char Is Hard Program <--"); //Imprime no console printf("\n\n Digite sua chave numérica de 1 a 116 e pressione a tecla Enter: "); //Imprime no console scanf("%d",&chave); //Lê tecla digitada e armazena na variável chave setbuf(stdin, NULL); //Limpa buffer do teclado if(chave==0){ //Verifica se a variável chave é igual a 0 printf("\n\n Chave inválida!! Aperte qualquer tecla para tentar novamente..."); //Imprime no console getch(); //Captura tecla goto inicio; //Retorna para linha inicio } } void LER_FRASE(){ //Início da função de leitura da frase inicio: //Define ponto para comando goto printf("\n\t --> Char Is_Hard Program <--"); //Imprime no console printf("\n\n Digite uma frase de até 128 digitos: "); //Imprime no console gets(frase); //Lê texto digitado e armazena na variável frase if(strlen(frase)>128){ //Verifica se o tamanho da frase é maior que 128 printf("\n\n Frase excede o limite máximo de characteres!"); //Imprime no console system("cls"); //Limpa console goto inicio; //Retorna para linha inicio } } void CRIPTOGRAFAR(){ //Início da função de criptografia int frase_cript; //Declara váriavel que armazenará o valor ASCII de cada caractere do texto system("cls"); //Limpa console LER_CHAVECRIPT(); //Executa função de leitura da chave de criptografia system("cls"); //Limpa console LER_FRASE(); //Executa função de leitura da frase system("cls"); //Limpa console printf("\n\t\t\t --> Char Is Hard Program <--"); //Imprime no console printf("\n\n Texto criptografado com sucesso!!"); //Imprime no console printf("\n\n\n Resultado da criptografia: "); //Imprime no console for(int i=0;i<strlen(frase);i++){ //Executa um loop até passar por todos carcteres da frase frase_cript = (int)frase[i] + chave; //Váriavel frase_cript recebe o valor ASCII de todos o caracteres da frase somados com a chave if(frase_cript > 127) frase_cript -= 117; //Verifica se o tamanho da frase junto com a chave excede 127 e caso sim, subtrai 117 printf("%c", (char)frase_cript); //Imprime todos os caracteres criptografados } } void DESCRIPTOGRAFAR(){ //Início da função de descriptografia int frase_descript; //Declara váriavel que armazenará o valor ASCII de cada caractere do texto system("cls"); //Limpa console LER_CHAVEDESCRIPT(); //Executa função de leitura da chave de descriptografia system("cls"); //Limpa console LER_FRASE(); //Executa função de leitura da frase system("cls"); //Limpa console printf("\n\t\t\t --> Char Is Hard Program <--"); //Imprime no console printf("\n\n Texto descriptografado com sucesso!!"); //Imprime no console printf("\n\n\n Resultado da descriptografia: "); //Imprime no console for(int i=0;i<strlen(frase);i++){ //Executa um loop até passar por todos carcteres da frase frase_descript = (int)frase[i] - chave; //Váriavel frase_descript recebe o valor ASCII de todos o caracteres da frase subtraídos com a chave if(frase_descript < 11) frase_descript += 117; //Verifica se o tamanho da frase subtraido com a chave é menor que 11 e caso sim, soma 117 printf("%c", (char)frase_descript); //Imprime todos os caracteres descriptografados } } void MENU_CRIPTOGRAFAR(){ //Início da função do menu de criptografia int opcao; //Declara váriavel opcao inicio: //Define ponto para comando goto printf("\n\t\t\t --> Char Is Hard Program <--"); //Imprime no console CRIPTOGRAFAR(); //Executa função de criptografia printf("\n\n\n"); //Pula 3 linhas system("pause"); //Pausa o programa até que uma tecla seja pressionada system("cls"); //Limpa console printf("\n\t --> Char Is_Hard Program <--"); //Imprime no console printf("\n\n 1 - Realizar outra criptografia"); //Imprime no console printf("\n\n 2 - Voltar para o menu"); //Imprime no console printf("\n\n 3 - Sair"); //Imprime no console inicio2: //Define ponto para comando goto printf("\n\n Informe a opção desejada: "); //Imprime no console scanf("%d", &opcao); //Lê tecla digitada e armazena na variável opcao setbuf(stdin,NULL); //Limpa buffer do teclado switch(opcao){ //Verifica o valor da variável opcao case 1: //Caso seja 1 goto inicio; //Retorna para linha inicio break; //Para de executar comando switch case 2: //Caso seja 2 break; //Para de executar comando switch case 3: //Caso seja 3 printf("\n\n Finalizando...\n\n"); //Imprime no console exit(0); //Sai do programa break; //Para de executar comando switch default: //Caso não seja nenhum dos citados acima printf("\n\n Opção inválida!!"); //Imprime no console getch(); //Captura tecla goto inicio2; //Retorna para linha inicio2 } } void MENU_DESCRIPTOGRAFAR(){ //Início da função do menu de descriptografia int opcao; //Declara váriavel opcao inicio: //Define ponto para comando goto printf("\n\t\t\t --> Char Is Hard Program <--"); //Imprime no console DESCRIPTOGRAFAR(); //Executa função de descriptografia printf("\n\n\n"); //Pula 3 linhas system("pause"); //Pausa o programa até que uma tecla seja pressionada system("cls"); //Limpa console printf("\n\t--> Char Is_Hard Program <--"); //Imprime no console printf("\n\n 1 - Realizar outra descriptografia"); //Imprime no console printf("\n\n 2 - Voltar para o menu"); //Imprime no console printf("\n\n 3 - Sair"); //Imprime no console inicio2: //Define ponto para comando goto printf("\n\n Informe a opção desejada: "); //Imprime no console scanf("%d", &opcao); //Lê tecla digitada e armazena na variável opcao setbuf(stdin,NULL); //Limpa buffer do teclado switch(opcao){ //Verifica o valor da variável opcao case 1: //Caso seja 1 goto inicio; //Retorna para linha inicio break; //Para de executar comando switch case 2: //Caso seja 2 break; //Para de executar comando switch case 3: //Caso seja 3 printf(" \n\nFinalizando...\n\n"); //Imprime no console exit(0); //Sai do programa break; //Para de executar comando switch default: //Caso não seja nenhum dos citados acima printf(" \n\nOpção inválida!!"); //Imprime no console getch(); //Captura tecla goto inicio2; //Retorna para linha inicio2 } } void MENU(){ //Inícia função do menu principal int opcao; //Declara váriavel opcao while(1){ //Inícia loop infinito system("cls"); //Limpa console printf("\n\t\t\t --> Char Is Hard Program <--"); //Imprime no console printf("\n\n 1 - Criptografar Texto"); //Imprime no console printf("\n\n 2 - Descriptografar Texto"); //Imprime no console printf("\n\n 3 - Sair"); //Imprime no console printf("\n\n Informe a opção desejada: "); //Imprime no console scanf("%d", &opcao); //Lê tecla digitada e armazena na variável opcao setbuf(stdin,NULL); //Limpa buffer do teclado switch(opcao){ //Verifica o valor da variável opcao case 1: //Caso seja 1 system("cls"); //Limpa console MENU_CRIPTOGRAFAR(); //Executa função do menu de criptografia break; //Para de executar comando switch case 2: //Caso seja 2 system("cls"); //Limpa console MENU_DESCRIPTOGRAFAR(); //Executa função do menu de descriptografia break; //Para de executar comando switch case 3: //Caso seja 3 printf(" \n\nFinalizando...\n\n"); //Imprime no console exit(0); //Sai do programa break; //Para de executar comando switch default: //Caso não seja nenhum dos citados acima printf("\n\n Opção inválida!!\n\n"); //Imprime no console system("pause"); //Pausa o programa até que uma tecla seja pressionada } } } int main(){ //Inícia função do programa principal system("color 02"); //Define cor da fonte como verde claro setlocale(LC_ALL,"Portuguese"); //Inclui a língua portuguesa no programa e permite o uso de acentos nos caracteres MENU(); //Executa função do menu principal }
Compartilhar