我想用 RC6 加密和解密字符串,但我不明白它如何与 Crypto++ 库一起工作,你能给我一个片段吗?
谢谢 !
这是来自 Crypto++ 网站的一段代码,演示了如何使用该库使用 AES 加密字符串(正如 jww 指出的那样,“RC6 是 AES 候选者之一”,该片段应该可以用作 RC6 的起点以及):
byte key[AES::DEFAULT_KEYLENGTH], iv[AES::BLOCKSIZE];
string plainText;
// ... populate key, iv, plainText here
string cipher;
StringSink* sink = new StringSink(cipher);
Base64Encoder* base64_enc = new Base64Encoder(sink);
CBC_Mode<AES>::Encryption aes(key, sizeof(key), iv);
StreamTransformationFilter* aes_enc = new StreamTransformationFilter(aes, base64_enc);
StringSource source(plainText, true, aes_enc);
我在 Internet 搜索 Crypto++ 库的示例代码时发现了此信息。诚然,对我来说,找到它并不像我预期的那样简单。
StackOverflow 上的相关侧边栏指出了我认为也可以提供帮助的其他页面,例如加密/解密字节数组 Crypto++的问答。
更新:今天(2017 年 3 月 26 日)刚刚在 Crypto++ wiki 站点的 RC6 网页上显示了一个更新。它现在有 RC6 特定代码,看起来正是您需要的。