如何使用Crypto ++使用RC6进行加密和解密

时间:2017-03-25 15:18:23

标签: c++ encryption crypto++ block-cipher

我想用RC6加密和解密字符串,但我不明白怎么做 它适用于Crypto ++库,你能给我一个片段吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

以下是code from the Crypto++ website的片段,演示了如何使用AES来加密使用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);

我在网上搜索Crypto ++库的示例代码时发现了这些信息。不可否认,我找到的并不像我预期的那样直截了当。

StackOverflow上的相关侧栏指出了我认为也可以提供帮助的其他页面,例如Q&amp; A为Encrypt/Decrypt byte array Crypto++

更新:更新刚刚于2017年3月26日the RC6 web page at the Crypto++ wiki site出现。它现在有RC6特定代码,看起来就像你需要的那样。