用c/c++写一段古典密码算法的实现代码
时间: 2024-10-14 20:03:33 浏览: 4
在C++中,我们可以实现简单的Caesar Cipher(凯撒密码)算法,这是一个最基础的替换式加密技术。这种算法通过将明文中的每个字符按照固定的位移进行替换,生成密文。下面是一个简单的凯撒密码实现:
```cpp
#include <iostream>
using namespace std;
char shift(char c, int s) {
if (c >= 'A' && c <= 'Z') // 大写字母处理
return static_cast<char>((c - 'A' + s) % 26 + 'A');
else if (c >= 'a' && c <= 'z') // 小写字母处理
return static_cast<char>((c - 'a' + s) % 26 + 'a');
else
return c; // 对其他字符不做改动
}
void caesar_cipher(string plaintext, int shift_amount) {
string ciphertext = "";
for (char c : plaintext) {
ciphertext += shift(c, shift_amount);
}
cout << "Ciphertext: " << ciphertext << endl;
}
int main() {
string input;
cout << "Enter the plaintext: ";
getline(cin, input);
int key;
cout << "Enter the shift amount (1-25): ";
cin >> key;
caesar_cipher(input, key);
return 0;
}
```
在这个代码中,`shift`函数负责单个字符的加密,`caesar_cipher`函数则遍历整个字符串并应用该函数。用户需要输入明文和位移量(通常范围为1到25),然后会得到相应的密文。