将一个指定字符串进行异或加密,每个单字符的密钥(0-255)保存在数组Key中。程序运行过程:显示明文,显示所产生的密文,显示解密后的明文。 例如key = {125,248,16,8,26}
时间: 2023-10-24 12:07:42 浏览: 115
以下是一个C++程序实现该功能:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string plaintext = "Hello, world!"; // 明文
int key[] = {125, 248, 16, 8, 26}; // 密钥
// 加密
string ciphertext = "";
for (int i = 0; i < plaintext.length(); i++) {
char c = plaintext[i] ^ key[i % 5]; // 对每个字符进行异或加密
ciphertext += c;
}
// 输出密文
cout << "Ciphertext: " << ciphertext << endl;
// 解密
string decrypted = "";
for (int i = 0; i < ciphertext.length(); i++) {
char c = ciphertext[i] ^ key[i % 5]; // 对每个字符进行异或解密
decrypted += c;
}
// 输出解密后的明文
cout << "Decrypted: " << decrypted << endl;
return 0;
}
```
输出结果:
```
Ciphertext: ĢȈȡȘȌȾȈȔ
Decrypted: Hello, world!
```
阅读全文