All pastes #784416 Raw Edit

criptografia RSA

public c v1 · immutable
·published 2007-11-19 18:08 UTC
rendered paste body
#include <stdio.h>#include <stdlib.h>#include <string.h>      void ler(char *string[]){    /*    Esta função recebe como parâmetro o caminho do arquivo de texto a ser aberto.    Ela abre, lê este arquivo e retorna na mesma variável que é passada como     parâmetro o conteúdo deste arquivo. Em síntese, ela converte um caminho de    arquivo no conteúdo do mesmo.    */        int i = 0;    char caracter;    char mensagem[1024];    FILE *arquivo;    if((arquivo = fopen(*string,"r")) == NULL)      {        /*Este procedimento verifica se o arquivo passado como parâmetro        existe. Caso não, encerra a aplicação aqui.*/                printf("Erro ao abrir arquivo!!!\n\n");        exit(1);      };    do      {         /*         Este procedimento faz a leitura do arquivo carácter a carácter, também         gravando carácter a carácter na string mensagem o texto encontrado.         */               caracter = getc(arquivo);        putchar(caracter);        mensagem[i] = caracter;        i++;      }    while(caracter != EOF);    strcpy(*string, mensagem);    /*O conteúdo de mensagem é copiado para *string para que a variável usada    para passar o parâmetro também sirva de retorno da mesma.*/        printf("\n\n");    fclose(arquivo);}void escrita(char string[], char string_[]) {    FILE *fp;     /*Fp será então um ponteiro para um arquivo (tipo FILE). É usando este tipo     de ponteiro que vamos poder manipular arquivos no C.*/        int i;    fp = fopen(string_,"w");     /*O "w" serve para abrir um arquivo texto para gravação.    Se o arquivo não existir, ele será criado.    Se já existir, o conteúdo anterior será destruído. Arquivo ASCII, para    escrita */        /*A condição !fp testa se o arquivo foi aberto com sucesso porque no caso    de um erro a função fopen() retorna um ponteiro nullo (NULL).*/    if(!fp){        printf("Erro na abertura do arquivo");         exit(0);         /*A função exit() encerra a aplicação.*/    }       for(i=0; string[i]; i++)        putc(string[i], fp);         /*Grava o arquivo, caractere a caractere*/        fclose(fp);    /*Quando acabamos de usar um arquivo que abrimos, devemos fechá-lo.    Para tanto usa-se a função fclose():*/}/*Rotina de conversão de texto para número*/int conv_texto(char ch){    /*    Esta função nada mais faz que verificar o caracter recebido como parâmetro    e retornar o numero correspondente a este carácter.    */     int n;          if (ch == 'A')        n = 11;     else if (ch == 'B')        n = 12;     else if (ch == 'C')        n = 13;     else if (ch == 'D')        n = 14;     else if (ch == 'E')        n = 15;     else if (ch == 'F')        n = 16;     else if (ch == 'G')        n = 17;     else if (ch == 'H')        n = 18;     else if (ch == 'I')        n = 19;     else if (ch == 'J')        n = 20;     else if (ch == 'K')        n = 21;     else if (ch == 'L')        n = 22;     else if (ch == 'M')        n = 23;     else if (ch == 'N')        n = 24;     else if (ch == 'O')        n = 25;     else if (ch == 'P')        n = 26;     else if (ch == 'Q')        n = 27;     else if (ch == 'R')        n = 28;     else if (ch == 'S')        n = 29;     else if (ch == 'T')        n = 30;     else if (ch == 'U')        n = 31;     else if (ch == 'V')        n = 32;     else if (ch == 'W')        n = 33;     else if (ch == 'X')        n = 34;     else if (ch == 'Y')        n = 35;     else if (ch == 'Z')        n = 36;     else if (ch == ' ')        n = 37;     else if (ch == '0')        n = 38;     else if (ch == '1')        n = 39;     else if (ch == '2')        n = 40;     else if (ch == '3')        n = 41;     else if (ch == '4')        n = 42;     else if (ch == '5')        n = 43;     else if (ch == '6')        n = 44;     else if (ch == '7')        n = 45;     else if (ch == '8')        n = 46;     else if (ch == '9')        n = 47;     else if (ch == '.')        n = 48;     else if (ch == ',')        n = 49;     else if (ch == ':')        n = 50;     else if (ch == 'Ç')        n = 51;     else         printf("\nFALHA NA CONVERSÃO");          return n;}/*Rotina de conversão de número para texto*/char un_conv_texto(int n){     /*     Esta função faz o contrário da anterior. Recebe um número e retorna o     carácter correspondente a este número.     */     char ch;          if (n == 11)        ch = 'A';     else if (n == 12)        ch = 'B';     else if (n == 13)        ch = 'C';     else if (n == 14)        ch = 'D';     else if (n == 15)        ch = 'E';     else if (n == 16)        ch = 'F';     else if (n == 17)        ch = 'G';     else if (n == 18)        ch = 'H';     else if (n == 19)        ch = 'I';     else if (n == 20)        ch = 'J';     else if (n == 21)        ch = 'K';     else if (n == 22)        ch = 'L';     else if (n == 23)        ch = 'M';     else if (n == 24)        ch = 'N';     else if (n == 25)        ch = 'O';     else if (n == 26)        ch = 'P';     else if (n == 27)        ch = 'Q';     else if (n == 28)        ch = 'R';     else if (n == 29)        ch = 'S';     else if (n == 30)        ch = 'T';     else if (n == 31)        ch = 'U';     else if (n == 32)        ch = 'V';     else if (n == 33)        ch = 'W';      else if (n == 34)        ch = 'X';     else if (n == 35)        ch = 'Y';     else if (n == 36)        ch = 'Z';     else if (n == 37)        ch = ' ';     else if (n == 38)        ch = '0';     else if (n == 39)        ch = '1';     else if (n == 40)        ch = '2';     else if (n == 41)        ch = '3';     else if (n == 42)        ch = '4';     else if (n == 43)        ch = '5';     else if (n == 44)        ch = '6';     else if (n == 45)        ch = '7';     else if (n == 46)        ch = '8';     else if (n == 47)        ch = '9';     else if (n == 48)        ch = '.';     else if (n == 49)        ch = ',';     else if (n == 50)        ch = ':';     else if (n == 51)        ch = 'Ç';     else         printf("\nFALHA NA CONVERSÃO");          return ch;}