Jump to content


Thais Alves

Member Since 03/12/2011
Offline Last Active 03/12/2011, 16:51
-----

Topics I've Started

Salvando Em Outro Arquivo

03/12/2011, 16:51

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

}

IPB Skin By Virteq