Advertisement
fferum

kript2 beta

Sep 28th, 2021
822
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.22 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. using namespace std;
  5. int main(int argc, char* argv[]) {
  6.     if (argc == 3) {
  7.         vector<int> bytearr;
  8.         ifstream file(argv[2], ios_base::binary);
  9.         if (file.is_open()) // вызов метода is_open()
  10.         {
  11.             long temp;
  12.             while ((temp = file.get()) != EOF) {
  13.                 bytearr.push_back(temp);
  14.             }
  15.             file.close();
  16.             if (strcmp(argv[1], "-e") == 0) {
  17.                 ofstream file(argv[2], ios_base::out | ios_base::trunc | ios_base::binary);
  18.                             //делаем кратно 6 добавляя пробелы в конец файла
  19.                 while (bytearr.size() % 6 != 0) {
  20.                     int temp = bytearr.size() % 6;
  21.                     for (int i = 0; i < temp; i++) {
  22.                         bytearr += " ";
  23.                     }
  24.                 }
  25.                 for (size_t i = 0; i < bytearr.size(); i++) {//шифрование
  26.                     if (i % 6 == 0) {
  27.                         bytearr[i] = bytearr[i - 4];
  28.                         bytearr[i - 1] = bytearr[i - 5];
  29.                         bytearr[i - 2] = bytearr[i];
  30.                         bytearr[i - 3] = bytearr[i - 2];
  31.                         bytearr[i - 4] = bytearr[i - 3];
  32.                         bytearr[i - 5] = bytearr[i - 1];
  33.                         int m = i;
  34.                         for (size_t i = m - 5; i < m; i++) {
  35.                             file << ((char)bytearr[i]) << endl;
  36.                         }
  37.                         i = m;
  38.                     }
  39.                 }
  40.                cout << "Success: File encrypt. \n\n";
  41.                file.close();
  42.     }
  43.             else if (strcmp(argv[1], "-d") == 0) {
  44.                 ofstream file(argv[2], ios_base::out | ios_base::trunc | ios_base::binary);
  45.                 for (int i = 0; i < bytearr.size(); ++i) {//расшифрование
  46.                     if (i % 6 == 0)
  47.                     {
  48.                         bytearr[i - 4] = bytearr[i];
  49.                         bytearr[i - 5] = bytearr[i - 1];
  50.                         bytearr[i] = bytearr[i - 2];
  51.                         bytearr[i - 2] = bytearr[i - 3];
  52.                         bytearr[i - 3] = bytearr[i - 4];
  53.                         bytearr[i - 1] = bytearr[i - 5];
  54.                         int m = i;
  55.                         for (size_t i = m - 5; i < m; i++) {
  56.                             file << ((char)bytearr[i]) << endl;
  57.                         }
  58.                         i = m;
  59.                     }
  60.                     cout << "Success: File decrypt. \n\n";
  61.                     file.close();
  62.                 }
  63.             }
  64.             else {
  65.                 cout << "Usage: lab <-e to encrypt or -d to decrypt> <filename>";
  66.                 return -1;
  67.             }
  68.         }
  69.         else
  70.         {
  71.             cout << "Error: File not open\n\n" << endl;
  72.             return -1;
  73.         }
  74.     }
  75.     else {
  76.         cout << "Usage: lab <-e to encrypt or -d to decrypt> <filename>\n\n";
  77.         return -1;
  78.     }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement