Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- // солнышко. извини мозг вообще уже не варит, я завтра разберусь по-новой и обязательно расскажу :*
- string vig(string &k) { // хуй знает, но очень похоже, что тут мы ебемся над ключем...
- string kk;
- for (int i = 0; i < k.size(); ++i) {
- if (k[i] >= 'A' && k[i] <= 'Z')
- kk += k[i];
- else if (k[i] >= 'a' && k[i] <= 'z')
- kk += k[i] + 'A' - 'a';
- }
- return kk;
- }
- string encrypt(string t,
- string k) { // Тут мы шифруем строку, я посмотрел в том, что ты скинула, там не паряться сильно над
- // шированием пробелов, поэтому я тоже поклал хуй на это, и встречая пробел просто его добавляю
- // Потом какая-то магическая хуйня над номерами букв в таблице ascii
- string output;
- for (int i = 0, j = 0; i < t.length(); ++i) {
- char chr = t[i];
- if (chr == ' ') {
- output += ' ';
- continue;
- }
- if (chr >= 'a' && chr <= 'z')
- chr += 'A' - 'a';
- else if (chr < 'A' || chr > 'Z')
- continue;
- output += (chr + k[j] - 2 * 'A') % 26 + 'A';
- j = (j + 1) % k.length();
- }
- return output;
- }
- string decryption(string t, string k) { // аналогично шифрованию, только обратное
- string output;
- for (int i = 0, j = 0; i < t.length(); ++i) {
- char chr = t[i];
- if (chr == ' ') {
- output += ' ';
- continue;
- }
- if (chr >= 'a' && chr <= 'z')
- chr += 'A' - 'a';
- else if (chr < 'A' || chr > 'Z')
- continue;
- output += (chr - k[j] + 26) % 26 + 'A';
- j = (j + 1) % k.length();
- }
- return output;
- }
- int main() {
- string key, str;
- cout << "pls, enter str to encrypt:\n";
- getline(cin, str);
- cout << "pls, enter key:\n";
- getline(cin, key);
- string new_key = vig(key);
- string encrypted = encrypt(str, new_key);
- string decrypt = decryption(encrypted, new_key);
- cout << "Original Message: " << str << endl;
- cout << "Encrypted Message: " << encrypted << endl;
- cout << "Decrypted Message: " << decrypt << endl;
- }
Add Comment
Please, Sign In to add comment