创建一个新的win32 console工程, 实现Caesar密码(加法密码)加解密。明密文均可以是任意ASCII打印字符
时间: 2023-06-10 11:04:00 浏览: 95
RSA算法实现数字及字符的加解密(完整工程)
您好!感谢您的提问。以下是实现Caesar密码加解密的代码,使用Visual Studio的win32 console工程可以直接运行:
```cpp
#include <iostream>
using namespace std;
string encrypt(string plaintext, int shift) {
string ciphertext = "";
for (int i = 0; i < plaintext.length(); i++) {
char c = plaintext[i];
if (isalpha(c)) {
c = toupper(c);
c = ((c - 65 + shift) % 26) + 65;
}
ciphertext += c;
}
return ciphertext;
}
string decrypt(string ciphertext, int shift) {
string plaintext = "";
for (int i = 0; i < ciphertext.length(); i++) {
char c = ciphertext[i];
if (isalpha(c)) {
c = toupper(c);
c = ((c - 65 - shift + 26) % 26) + 65;
}
plaintext += c;
}
return plaintext;
}
int main() {
string text;
int shift;
cout << "请输入要加密或者解密的文本:";
getline(cin, text);
cout << "请输入移位数(正数往右移,负数往左移):";
cin >> shift;
string encryptedText = encrypt(text, shift);
string decryptedText = decrypt(encryptedText, shift);
cout << "加密后的结果为:" << encryptedText << endl;
cout << "解密后的结果为:" << decryptedText << endl;
return 0;
}
```
希望这个代码可以帮到您,如有疑问请随时提出。
阅读全文