编程实现字符串的凯撒加密和解密
时间: 2024-10-18 11:08:00 浏览: 22
python实现凯撒密码加密解密
5星 · 资源好评率100%
凯撒加密(Caesar Cipher)是一种简单的替换式密码,通过将字母表中的每个字符向后移动固定的位置来加密文本。在编程中,我们可以用循环和ASCII码来实现这个过程。以下是C++语言的一个基本示例,展示了如何对字符串进行加密和解密:
**加密函数**(向前移动n位):
```cpp
void caesar_encrypt(std::string& str, int shift) {
for (size_t i = 0; i < str.length(); ++i) {
if (isalpha(str[i])) { // 检查是否是字母
char shifted_char = toupper(str[i]); // 转换为大写字母处理
shifted_char = ((shifted_char - 'A' + shift) % 26) + 'A'; // 加密
str[i] = shifted_char;
}
}
}
// 示例用法:
std::string plaintext = "Hello, World!";
caesar_encrypt(3, plaintext); // 移动3位
```
**解密函数**(向前移动负n位):
```cpp
void caesar_decrypt(std::string& str, int shift) {
caesar_encrypt(str, -shift);
}
// 示例用法:
std::string ciphertext = "KHOOR, ZRUOG!";
caesar_decrypt(ciphertext, 3); // 解密回原文本
```
注意:这里的函数只处理大写字母,如果需要处理小写字母,只需去掉`toupper()`调用即可。
阅读全文