用c++编写一款简单对称加密算法
时间: 2024-11-12 13:41:43 浏览: 22
在C++中,我们可以使用简单的位操作来创建一个非常基础的对称加密算法,比如异或(XOR)操作。异或是一种非数学运算,它的一个显著特性就是相同的比特位置如果相等则结果为0,如果不相等则结果为1,这可以用于简单的数据混淆。
下面是一个简化的异或加密的例子:
```cpp
#include <iostream>
using namespace std;
// 加密函数
string encrypt(string plaintext, string key) {
string ciphertext = "";
for (size_t i = 0; i < plaintext.length(); ++i) {
ciphertext += static_cast<char>((plaintext[i] ^ key[i % key.length()]) & 0xFF);
}
return ciphertext;
}
// 解密函数
string decrypt(string ciphertext, string key) {
return encrypt(ciphertext, key); // 对称加密,解密也是同样的操作
}
int main() {
string input("Hello, World!");
string key("EncryptionKey");
string encrypted = encrypt(input, key);
cout << "Encrypted: " << encrypted << endl;
string decrypted = decrypt(encrypted, key);
cout << "Decrypted: " << decrypted << endl;
return 0;
}
```
在这个例子中,我们假设key的长度小于等于输入字符串的长度,`key[i % key.length()]`用于循环使用key进行加密。这个算法非常基础,主要用于教学演示,并不适合实际的安全需求。
阅读全文