编写函数,对字符串进行加密、解密。加密、解密的密匙为两位数字,加密时轮流使用密匙中的数字对字符进行加法运算,解密时则轮流使用密匙中的数字对字符进行减法运算。例如,待加密的字符串为"China",密匙为2和5,则加密后的密文为"Emksc",解密后还原为"China"。c++
时间: 2024-02-09 19:09:40 浏览: 63
以下是加密、解密的函数实现:
```c++
#include <iostream>
#include <string>
using namespace std;
string encrypt_decrypt(string text, string key) {
string encrypted_text = "";
for (int i = 0; i < text.length(); i++) {
int k = key[i % 2] - '0'; // 轮流使用密匙中的数字
char c = text[i];
if (isupper(c)) {
encrypted_text += (c - 'A' + k) % 26 + 'A'; // 大写字母加密
} else if (islower(c)) {
encrypted_text += (c - 'a' + k) % 26 + 'a'; // 小写字母加密
} else {
encrypted_text += c; // 非字母字符不加密
}
}
return encrypted_text;
}
int main() {
string text = "China";
string key = "25";
string encrypted_text = encrypt_decrypt(text, key);
cout << "加密后的密文:" << encrypted_text << endl;
string decrypted_text = encrypt_decrypt(encrypted_text, key);
cout << "解密后的明文:" << decrypted_text << endl;
return 0;
}
```
输出结果:
```
加密后的密文:Emksc
解密后的明文:China
```
阅读全文