Criptografia com metodo One - Time Pad - Encripta


Exemplo simples de como encriptar arquivo .txt


/*Inicio */

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int main()
{

   char entradachar, recebe_encriptadochar,recebe_rand;

   FILE * entrada; /*devera ler o arquivo entrada e gerar uma chave aleatoria e salvar no arquivo chave */
   FILE * chave; /*guardar apenas a chave gerada no arquivo entrada */
   FILE * encriptado;/*guardar o arquivo encriptado para cada char do arquivo entrada e cada char do arqivo chave gerado aleatoriamente */

    printf("Primeiro Exercicio Programa\n");
    printf("Criptografia com metodo One - Time Pad\n");
 
    printf("--- Encripta ---\n");
    printf("Passos ao executar o programa:\n");
    printf("1 - Sera feito a leitura do arquivo entrada.txt.\n");
    printf("2 - Gerar um caracter aleatorio.\n");
    printf("3 - Todos os caracteres aleatorio sera escrito no aruivo chave.txt.\n");
    printf("4 - Para cada caracter lido do arquivo entrada e para cada char aleatorio\nsera feito um xor para encriptar o texto do arquivo entrada.txt.xtt\n ");
    printf("5 - O resultado desse xor eh a encriptacao do testo e sera escrito\n no arquivo entrada.enc.\n");
    printf("6 - O arquivo chave.txt e o arquivo entrada.enc.txt de ser utilizado no\n programa desencripta.c\n");

    srand(time(0));

    entrada = fopen("entrada.txt", "r");/*abrir para leitura o arquivo entrada */
    fscanf(entrada, "%c", &entradachar);/*lendo o 1 caracter no arquivo entrada */

    chave = fopen("chave.txt","w");/*abrir o arquivo chave para escrever o conteudo gerado aleatoriamente */
    encriptado = fopen("entrada.enc.txt","w");/*abrir o arquivo entrada.enc para encriptar cada char entrada ^ char chave rand*/


    while(!feof (entrada))
    {
            recebe_rand =(char)(127 * ((float) rand() / RAND_MAX));
            fprintf(chave,"%c",recebe_rand);/*escrevendo cada char aleatorio no arquivo chave */

            recebe_encriptadochar =  entradachar ^ recebe_rand;/*usando xor para cada char escrito no arquivo entrada e cada rand aleatorio e convertendo rand para char rand */
            fprintf(encriptado,"%c", recebe_encriptadochar );/*escrevendo no arquivo entrada.enc cada char encriptando */

        fscanf(entrada, "%c", &entradachar);/*lendo cada caracter no arquivo entrada ate o fim*/

    }



        fclose(entrada);/*fechando o  arquivo entrada.txt */
        fclose(chave);/*fechando o  arquivo chave.txt */
        fclose(encriptado);

        return 0;

}