用c++代码编写一个简单的加密与解密程序
时间: 2024-10-10 09:05:57 浏览: 61
在C++中,我们可以创建一个简单的加密和解密程序,这里以凯撒密码(Caesar Cipher)为例,这是一种替换加密技术,通过将字母按照固定的偏移量向右移动来加密。下面是一个基础的实现:
```cpp
#include <iostream>
#include <string>
// 加密函数
std::string encrypt(const std::string& plaintext, int shift) {
std::string ciphertext = "";
for (char c : plaintext) {
if (isalpha(c)) { // 检查是否为字母
char encrypted_char;
if (islower(c)) { // 小写字母加密
encrypted_char = static_cast<char>((c + shift - 'a') % 26 + 'a');
} else { // 大写字母加密
encrypted_char = static_cast<char>((c + shift - 'A') % 26 + 'A');
}
ciphertext += encrypted_char;
} else {
ciphertext += c; // 非字母字符保持不变
}
}
return ciphertext;
}
// 解密函数
std::string decrypt(const std::string& ciphertext, int shift) {
return encrypt(ciphertext, -shift); // 使用相同的偏移量进行解密,但是方向相反
}
int main() {
std::string input_text = "Hello, World!";
int shift_amount = 3;
std::cout << "Original Text: " << input_text << std::endl;
std::string encrypted_text = encrypt(input_text, shift_amount);
std::cout << "Encrypted Text: " << encrypted_text << std::endl;
std::string decrypted_text = decrypt(encrypted_text, shift_amount);
std::cout << "Decrypted Text: " << decrypted_text << std::endl;
return 0;
}
```
在这个例子中,`encrypt` 函数用于加密输入文本,`decrypt` 函数则用于解密。用户可以调整 `shift_amount` 来改变加密强度。
阅读全文