用c++实现凯撒加密、
时间: 2024-12-02 09:13:36 浏览: 15
在C++中实现凯撒加密也很直观,你可以创建一个函数,接受明文字符串和偏移量作为输入,然后遍历每个字符并应用相应的加密规则。这里是一个简单的示例:
```cpp
#include <iostream>
#include <string>
// 函数用于将英文字符按凯撒密码加密
std::string caesar_cipher_encrypt(const std::string& plaintext, int shift) {
std::string ciphertext;
// 遍历输入的每个字符
for (char c : plaintext) {
// 检查字符是否为字母
if ('a' <= c && c <= 'z') { // 小写字母
ciphertext += static_cast<char>((c + shift - 'a') % 26 + 'a');
} else if ('A' <= c && c <= 'Z') { // 大写字母
ciphertext += static_cast<char>((c + shift - 'A') % 26 + 'A');
} else { // 非字母字符不变
ciphertext += c;
}
}
return ciphertext;
}
int main() {
std::string plaintext = "Hello, World!";
int shift = 3;
std::string ciphertext = caesar_cipher_encrypt(plaintext, shift);
std::cout << "Encrypted message: " << ciphertext << std::endl;
// 解密部分与加密类似,只需要把偏移量变成负数
int decryption_shift = -shift;
std::string decrypted_text = caesar_cipher_encrypt(ciphertext, decryption_shift);
std::cout << "Decrypted message: " << decrypted_text << std::endl;
return 0;
}
```
这个程序会输出加密后的文本,并在主函数中展示了如何进行解密。注意,C++标准库中并没有内置的方式来直接处理大小写字母,所以这里使用了ASCII码值来进行计算。
阅读全文