用C++实现移位密码加密解密
时间: 2024-09-24 13:10:15 浏览: 4
在C++中,移位密码也称为 Caesar Cipher,是一种简单的替换式加密技术。它通过将每个字符按照固定的位移(例如3位)向右移动来实现加密。下面是一个简单的移位密码加密和解密的示例:
```cpp
#include <iostream>
#include <string>
// 加密函数
std::string encryptCaesarCipher(const std::string& plaintext, int shift) {
std::string ciphertext;
for (char c : plaintext) {
if ('A' <= c && c <= 'Z') { // 处理大写字母
ciphertext += static_cast<char>((c - 'A' + shift) % 26 + 'A');
} else if ('a' <= c && c <= 'z') { // 处理小写字母
ciphertext += static_cast<char>((c - 'a' + shift) % 26 + 'a');
} else { // 非字母字符不变
ciphertext += c;
}
}
return ciphertext;
}
// 解密函数
std::string decryptCaesarCipher(const std::string& ciphertext, int shift) {
return encryptCaesarCipher(ciphertext, -shift);
}
int main() {
std::string input = "Hello, World!";
int shift = 3;
std::cout << "Original message: " << input << std::endl;
std::string encrypted = encryptCaesarCipher(input, shift);
std::cout << "Encrypted message: " << encrypted << std::endl;
std::string decrypted = decryptCaesarCipher(encrypted, shift);
std::cout << "Decrypted message: " << decrypted << std::endl;
return 0;
}
```
在这个例子中,`encryptCaesarCipher`函数接受明文和位移作为参数,并返回加密后的密文。而`decryptCaesarCipher`则是对密文进行相应的位移解密。