Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. int main( int argc, char *argv[])
  2. {
  3. int pindex=0;
  4. long lsize=0,i=0;
  5. char password[1024];
  6. int plen;
  7. char filename[64];
  8. char nfilename[64];
  9.  
  10. if(argc!=4) // there should be exavtly 4 parameters including tar2
  11. {
  12. printf("Not enough arguments!\n");
  13. return 0;
  14. }
  15.  
  16. strcpy(filename,argv[1]);
  17. FILE* f = fopen(filename, "rb"); // opening file for reading
  18. fseek(f,0,SEEK_END);
  19. lsize = ftell(f);
  20. rewind(f);
  21.  
  22.  
  23. strcpy(password,argv[3]);
  24. plen = strlen(password);
  25.  
  26. unsigned char xored;
  27.  
  28. // for encrypting
  29. if(strcmp(argv[2],"-e")==0)
  30. {
  31. printf("encrypting the file %s \n", filename);
  32. strcat(filename,".tar2");
  33. FILE* fout = fopen(filename, "wb");
  34. while(i<lsize){
  35. unsigned char first = fgetc(f); // reading byte from file
  36. i++;
  37. xored = first^(password[pindex]);
  38. fputc(xored,fout); // writing to output file
  39. pindex = (pindex+1)%plen;
  40. }
  41. fclose(fout);
  42. }
  43.  
  44. // for decrypting
  45. if(strcmp(argv[2],"-d")==0)
  46. {
  47. printf("decrypting the file %s \n", filename);
  48. int file_len = strlen(filename);
  49. int i;
  50. pindex = plen-1;
  51. for(i=0; i<file_len-5; i++)
  52. {
  53. nfilename[i] = filename[i];
  54. }
  55. nfilename[i]='\0';
  56. FILE* fout = fopen(nfilename, "wb");
  57. while(i<lsize){
  58. unsigned char first = fgetc(f);
  59.  
  60. i++;
  61. xored = first^password[pindex];
  62. fputc(xored,fout);
  63. pindex = pindex-1;
  64. if(pindex<0)
  65. {
  66. pindex = plen-1;
  67. }
  68. }
  69. fclose(fout);
  70. }
  71. fclose(f);
  72.  
  73. return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement