好的,我们以Base64编码为例来说明。
#include <iostream>
#include <string>
#include <vector>
#include "base64.h" // 可使用开源库如openssl等
std::string encrypt(const std::string& plaintext) {
// 将明文字符串转换为二进制数据
std::vector<uint8_t> binaryData(plaintext.begin(), plaintext.end());
// 使用Base64进行编码
std::string encodedData = base64_encode(binaryData.data(), binaryData.size());
return encodedData;
}
std::string decrypt(const std::string& ciphertext) {
// 将Base64编码的字符串解码为二进制数据
std::vector<uint8_t> decodedData = base64_decode(ciphertext);
// 将二进制数据转换回明文字符串
std::string plaintext(decodedData.begin(), decodedData.end());
return plaintext;
}
int main() {
std::string plaintext = "Hello, World!";
// 加密
std::string encryptedText = encrypt(plaintext);
// 解密
std::string decryptedText = decrypt(encryptedText);
std::cout << "明文: " << plaintext << std::endl;
std::cout << "加密后: " << encryptedText << std::endl;
std::cout << "解密后: " << decryptedText << std::endl;
return 0;
}
在这个例子中,我们使用了一个名为base64_encode()和base64_decode()的函数来进行Base64编码和解码。你可以使用现有的开源库(如 OpenSSL)来实现这些功能,也可以自己实现一个Base64编码/解码函数。
运行上述代码,输出结果如下:
明文: Hello, World!
加密后: SGVsbG8sIFdvcmxkIQ==
解密后: Hello, World!
可以看到,通过Base64编码后的字符串长度由原始的13个字符增加到了24个字符,但实际字节长度并没有变短。这里需要注意的是,Base64编码不是为了压缩数据,而是将二进制数据转换成可打印的ASCII字符形式。如果你追求字节长度更小的加密方式,可能需要考虑其他算法或者压缩技术来实现。
内容由零声教学AI助手提供,问题来源于学员提问




