Ir para conteúdo
Fórum Script Brasil

jnoise

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre jnoise

jnoise's Achievements

0

Reputação

  1. Pessoal preciso de ajuda em um exercício Exercício 8.4. A operação ou exclusivo bit-a-bit (^), tem a seguintes propriedades: (i) x^0=x, (ii)x^x=0 e (ii)(x^y)^z = x^(y^z). Usando essa operação podemos criar um método de criptografia com senha. Seja m um caracter da mensagem e s um caracter da senha. Para criptografar m, fazemos m^s e obtermos o caracter criptografado c. Para ter m de volta, basta fazer c^s. Como c = (m^s), pelas propriedades acima, segue que c^s = (m^s)^s = m^(s^s) = m^0= m. Usando esse método, crie um programa para criptografia que receba a senha e os nomes dos arquivos de origem e destino via argumentos da linha de comando. [Dica: utilize as letras da senha ciclicamente, de modo que os caracteres da mensagem não sejam criptografados sempre com a mesma letra. Segue um trecho do código. (codebox, não está "funciano") #include "stdafx.h" #include "string.h" #include "stdlib.h" void main(int argc, char *argv[]) { FILE *entrada, *saida; char c,senha[20],confSenha[20]; if( argc!=3 ) { printf("Faltam Parametros ex: cripto <c> <d> <nome do arquivo>\n"); exit(1); } if( argc[1] !='c' || argc[1] !='d') { printf("Erro de parametros ex: cripto <c> <d> <nome do arquivo>\n"); exit(1); } do{ printf("Digite a senha: "); gets(senha); printf("Confirmacao de senha: "); gets(confSenha); if(strcmp(senha, confSenha) != 0) printf("senha não confere"); }while(strcmp(senha, confSenha) != 0); if((entrada = fopen(argv[2],"rb"))== NULL){ printf("Arquivo não pode ser aberto\n"); exit(1); } if((saida = fopen("temp.txt","wb"))== NULL){ printf("Arquivo não pode ser aberto\n"); exit(1); } if( argc[1]=='c'){ while(1) { // fputc('@',s); c = fgetc(entrada); if(feof(entrada)) break; fputc(~c,saida); } } else { while(1) { c = fgetc(entrada); if(feof(entrada)) break; fputc(~c,saida); } } fcloseall(); unlink(argv[2]); rename("temp.txt",argv[2]); unlink("temp.txt"); getchar(); } Desde já agradeço. Jnoise.
×
×
  • Criar Novo...