Advertisement
Anden198

encryption

Sep 16th, 2017
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.99 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. const string in_alphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя ";
  7. //const string out_alphabet = "qazwsxedcrfvtgbyhnujmik,ol.p;/[']@";
  8. const string out_alphabet = "еёжзийклабвгдмнопрстуфхцчшщъыьэюя ";
  9. const string  key ="бревно";
  10.  
  11. string read_file(){
  12.     char name_file[255]="s_text.txt";
  13.     cout<<"Введите название файла:";
  14.     //cin>>name_file;
  15.     cout<< name_file<<endl;
  16.     ifstream in (name_file);
  17.     string text;
  18.     in >> text;
  19.     in.close();
  20.     return text;
  21. }
  22.  
  23. void encryption(){
  24.     string in_text = read_file();
  25.     string out_text;
  26.     string key_re;
  27.     int len_key = key.length();
  28.     int len_alp = in_alphabet.length();
  29.     for(int i = len_key; i<len_alp; i++){
  30.         key_re = key_re+key_re[i%len_key];
  31.     }
  32.     int len_text = in_text.length();
  33.     int x_i, k_i,j;
  34.     ofstream out ("encryption_text.txt");
  35.     for(int i=0; i< len_text; i++){
  36.         x_i = in_alphabet.find(in_text[i]);
  37.         k_i = in_alphabet.find(key_re[i]);
  38.         j = (x_i+k_i)%len_alp;
  39.         out_text[i] = out_alphabet[j];
  40.         cout<<out_text[i];
  41.         out << out_text[i];
  42.     }
  43.     out.close();
  44. }
  45.  
  46. void decryption(){
  47.     string in_text = read_file();
  48.     string out_text;
  49.     int len_alp = out_alphabet.length();
  50.     string key_valid= "бревно";
  51.     /*cout<<"Введите пароль: ";
  52.     cin>> key_valid;
  53.     cout<<endl;
  54.     cout<<key_valid;*/
  55.     int len_key = key_valid.length();
  56.     /*if(key_valid != key)
  57.     {
  58.        for(int i = len_key; i<len_alp; i++){
  59.             key_valid = key_valid+key_valid[i%len_key];
  60.         }
  61.         cout<< key_valid;
  62.         int len_text = in_text.length();
  63.         int x_i, k_i,j;
  64.         ofstream out ("decryption_text.txt");
  65.         out<< "Text";
  66.         out.close();
  67.     }
  68.     else
  69.     {*/
  70.       for(int i = len_key; i<len_alp; i++){
  71.             key_valid = key_valid+key_valid[i%len_key];
  72.         }
  73.         cout<<key<<endl;
  74.         int len_text = in_text.length();
  75.         int x_i, k_i,j;
  76.         ofstream out ("decryption_text.txt");
  77.         for(int i=0; i< len_text; i++){
  78.             x_i = out_alphabet.find(in_text[i]);
  79.             k_i = in_alphabet.find(key_valid[i]);
  80.             cout<<"x:"<<x_i<<"k:"<<k_i<<endl;
  81.             j = (x_i-k_i+len_alp)%len_alp;
  82.             cout<<j<<endl;
  83.             out_text[i] = in_alphabet[j];
  84.             cout<<out_text[i];
  85.             out << out_text[i];
  86.         }
  87.         out.close();
  88.     //}
  89. }
  90.  
  91. int main()
  92. {
  93.     setlocale(LC_ALL, "Russian");
  94.     int input;
  95.     loop:;
  96.     cout<<"Выберете режим работы программы"<<endl;
  97.     cout<<"Шифрование [1]"<<endl;
  98.     cout<<"Расшифровка [2]"<<endl;
  99.     cin>>input;
  100.     switch (input){
  101.         case 1: encryption(); break;
  102.         case 2: decryption(); break;
  103.         default: goto loop; break;
  104.     }
  105.     return 0;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement