Boa noite gente, sou nova por aqui e na verdade, espero muito que vocês consigam me ajudar.!
Tenho que desenvolver um código em C de criptografia e descriptografia.
onde o usiario vai abrir o sistema, escolher a chave e digitar o texto que ele deseja criptografar. e depois
o mesmo programa tem que deescriptografar, mas estou com alguns problemas.
Primeiro, eu não consigo fazer e ler um arquivo criptografado para descriptografar. não consegui incluir
a linha de código que faça com que ele abra um arquivo pronto.
e Segundo, ele tem que gerar 3 arquivos. um com o texto digitado, um criptografado e outro descriptografado.
vou postar o código aqui, se possivel.. por favor me ajudem...
#include <stdio.h>
#include <stdlib.h>
void codifica(void);
void descodifica(void);
int main()
{
int escolha;
do{
printf("\n\n");
printf("--------------------CRIPTOGRAFIA E DESCRIPTOGRAFIA DE DADOS--------------------\n\n\n");
printf("Escolha uma das opcoes abaixo :\n\n");
printf("1 - Codificar;\n");
printf("2 - Descodificar;\n");
printf("3 - Sair;\n\n");
scanf ("%d", &escolha);
fflush(stdin);
system("cls");// limpar tela
switch (escolha){
case 1:
codifica ();
break;
case 2:
descodifica ();
break;
}
}
while (escolha!=3);
}
void codifica(void){
char frase[' '];
int chave, tamanho_frase, i;
FILE*ap;
ap = fopen ("criptografado.txt", "w");
if(!ap){//verifica se var é true
printf ("Erro na abertura do arquivo");
}
printf("\n\n");
printf("-----------------------------CRIPTOGRAFIA DE DADOS-----------------------------\n");
printf ("\n\nEscreva o texto a ser criptografado:\n");
gets (frase);
tamanho_frase = strlen(frase);//identificar qual e a quantidade de caracteres da frase
system("cls"); // limpar tela
printf("\n\n");
printf("-----------------------------CRIPTOGRAFIA DE DADOS-----------------------------\n");
printf ("\n\nDigite o numero da chave menor ou igual a 25:\n");
scanf ("%d", &chave);
fflush(stdin);
system("cls");//limpar tela
if (chave>25){ //validar chave
printf ("\n\nA chave deve ser menor ou igual a 25. Digite novamente:\n");
scanf ("%d", &chave);
}
i=0;
for (i=0;i<tamanho_frase;i++){
frase[i]=frase[i]+chave;
}
printf("\n\n");
printf("-----------------------------CRIPTOGRAFIA DE DADOS-----------------------------\n\n\n");
printf ("Texto criptografado: %s\n", frase);
gets (frase);
i=0;
for (i=0;i<tamanho_frase;i++){
putc (frase[i],ap);
}
fclose(ap);
}
void descodifica(void){
char frase[' '];
int chave, tamanho_frase, i;
printf("\n\n");
printf("---------------------------DESCRIPTOGRAFIA DE DADOS---------------------------\n");
printf ("\n\nEscreva o texto a ser descriptografado:\n");
gets (frase);
system("cls");//limpa a tela
tamanho_frase = strlen(frase);//identificar qual e a quantidade de caracteres da frase
printf("\n\n");
printf("---------------------------DESCRIPTOGRAFIA DE DADOS---------------------------\n");
printf ("\n\nDigite o numero da chave menor ou igual a 25:\n");
scanf ("%d", &chave);
system("cls"); //limpa a tela
if (chave>25){ //validar chave
printf ("\n\nA chave deve ser menor ou igual a 25. Digite novamente:\n");
scanf ("%d", &chave);
}
for (i=0;i<tamanho_frase;i++){
frase[i]=frase[i]-chave;
}
printf("\n\n");
printf("---------------------------DESCRIPTOGRAFIA DE DADOS---------------------------\n");
printf ("\n\nTexto descriptografado:%s\n", frase);
//gets (frase);
}