Вопрос задан 08.06.2023 в 05:29. Предмет Информатика. Спрашивает Дунец Лиза.

(С++) Розробити програму шифрування та розшифрування шифром простої заміни

0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Заика Ваня.

Чтобы разработать программу шифрования и дешифрования с простым шифром замены на C++, вы можете использовать следующий код:

#include <iostream>

#include <string>

using namespace std;

string encrypt(string plaintext, string key)

{

string ciphertext = "";

for (int i = 0; i < plaintext.length(); i++)

{

char ch = plaintext[i];

int index = (int)(ch);

int newIndex = (index + key[i % key.length()]) % 128;

ciphertext += (char)(newIndex);

}

return ciphertext;

}

string decrypt(string ciphertext, string key)

{

string plaintext = "";

for (int i = 0; i < ciphertext.length(); i++)

{

char ch = ciphertext[i];

int index = (int)(ch);

int newIndex = (index - key[i % key.length()]) % 128;

plaintext += (char)(newIndex);

}

return plaintext;

}

int main()

{

string plaintext, key;

cout << "Введите открытый текст: ";

getline(cin, plaintext);

cout << "Введите ключ: ";

getline(cin, key);

string ciphertext = encrypt(plaintext, key);

cout << "Введите шифротекст: " << ciphertext << endl;

string decryptedText = decrypt(ciphertext, key);

cout << "Введите расшифрованный текст: " << decryptedText << endl;

return 0;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Звичайний шифр простої заміни - це один з найпростіших методів шифрування, де кожній літері алфавіту ставиться у відповідність інша літера алфавіту. Для розробки програми шифрування та розшифрування шифру простої заміни використаємо мову програмування C++.

Основною частиною програми будуть функції для шифрування та розшифрування тексту з використанням шифру простої заміни. Ось приклад коду:

cpp
#include <iostream> #include <string> #include <unordered_map> std::string encrypt(const std::string& plaintext, const std::unordered_map<char, char>& cipher) { std::string ciphertext; for (char c : plaintext) { if (cipher.count(c) > 0) { ciphertext += cipher.at(c); } else { ciphertext += c; // Додаємо символ без змін } } return ciphertext; } std::string decrypt(const std::string& ciphertext, const std::unordered_map<char, char>& cipher) { std::string plaintext; for (char c : ciphertext) { bool found = false; for (const auto& entry : cipher) { if (entry.second == c) { plaintext += entry.first; found = true; break; } } if (!found) { plaintext += c; // Додаємо символ без змін } } return plaintext; } int main() { std::string plaintext; std::unordered_map<char, char> cipher; // Введення шифру for (char c = 'a'; c <= 'z'; ++c) { char encryptedChar; std::cout << "Введіть заміну для " << c << ": "; std::cin >> encryptedChar; cipher[c] = encryptedChar; } // Введення тексту для шифрування std::cout << "Введіть текст для шифрування: "; std::cin.ignore(); // Пропускаємо символ нового рядка після введення шифру std::getline(std::cin, plaintext); // Шифрування тексту std::string ciphertext = encrypt(plaintext, cipher); std::cout << "Зашифрований текст: " << ciphertext << std::endl; // Розшифрування тексту std::string decryptedText = decrypt(ciphertext, cipher); std::cout << "Розшифрований текст: " << decryptedText << std::endl; return 0; }

В цьому коді ми використовуємо std::unordered_map<char, char> для зберігання заміни літер алфавіту. К

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос