Jump to content
Sign in to follow this  
arkham_

Criptografia de arquivos em C

Recommended Posts

Achei esse fonte que fiz a um bom tempo: um programinha que criptografa arquivos. Você pode usá-lo em arquivos de qualquer extensão: .jpg, .gif, .txt, .rar, .wav, .pdf, .odt, etc...

 

Exemplo:

 

[email protected]:~$ ./cripto fsociety.jpg

será criado um arquivo fsociety.jpg.cripto

 

O inverso:

 

[email protected]:~$ ./cripto fsociety.jpg.cripto

 

Caso queiram mudar a regra para criptografar/descriptografar, vejam as linhas (que estão em cifra de caesar 3):

 

while((c = getc(a)) != EOF) putc(c + 3, b);

while((c = getc(a)) != EOF) putc(c - 3, b);

 

Com exceção de arquivos de texto, não fica muito óbvio qual criptografia está sendo usada.

#include
#include

int main(int argc, char *argv[])
{
     int c, t;
     char ext[6], out[100] = "";
     FILE *a, *b;

     if(argc != 2)
     {
          printf("\nUse: ./cripto file\n");
          printf("Examples:\n");
          printf("Encrypt a file:\n");
          printf("./cripto image_file.jpg\n\n");
          printf("Decrypt a file:\n");
          printf("./cripto image_file.jpg.cripto\n\n");
          return 0;
     }

     t = strlen(argv[1]);

     ext[0] = argv[1][t-6];
     ext[1] = argv[1][t-5];
     ext[2] = argv[1][t-4];
     ext[3] = argv[1][t-3];
     ext[4] = argv[1][t-2];
     ext[5] = argv[1][t-1];

     if(strcmp(ext, "cripto"))
     {
          a = fopen(argv[1], "r");
          strcat(out, argv[1]);
          strcat(out, ".cripto");
          b = fopen(out, "w");

          while((c = getc(a)) != EOF) putc(c + 3, b); /* caesar cipher */
     }
     else
     {
          a = fopen(argv[1], "r");
          argv[1][t-7] = '\0';
          strcat(out, argv[1]);
          b = fopen(out, "w");

          while((c = getc(a)) != EOF) putc(c - 3, b); /* caesar cipher */
     }

     fclose(a);
     fclose(b);
     return 0;
}
  • Like 1
  • Love 2

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.