256位Rijndael块大小
256-bit Rijndael blocksize?
我正在尝试使用cryptopp将解密例程从c#程序移植到c++,但我有一个问题。在c#程序中,密钥和IV都是256位。所以我试着这样做:
char *hash1 = "......";
std::string hash2;
CryptoPP::StringSource(hash1, true,new CryptoPP::Base64Decoder(new CryptoPP::StringSink(hash2)));
CryptoPP::Rijndael::Decryption decryptor(key, 32);
CryptoPP::CBC_Mode_ExternalCipher::Decryption cbcDecryption( decryptor, iv);
CryptoPP::StreamTransformationFilter stfDecryptor(cbcDecryption, (new CryptoPP::StringSink( decryptedData ) ));
stfDecryptor.Put( reinterpret_cast<const unsigned char*>( hash2.c_str() ), hash2.size() );
stfDecryptor.MessageEnd();
和我得到
StreamTransformationFilter:密文长度不是块大小的倍数。
我试图像这样传递IV大小:
CryptoPP::CBC_Mode<CryptoPP::Rijndael >::Decryption decr;
decr.SetKeyWithIV(key, 32, iv, 32);
然后我得到:
IV长度32超过最大16。
那么,当数据被长度= 32的IV加密时,我如何解密数据?
看一下实现,当前的crypto++迭代只支持16字节块大小的Rijndael。由于IV必须精确地为CBC模式的单个块,因此256位块大小的Rijndael似乎不可能。
相关文章:
- LINK 尝试使用 OpenSSL evp aes 256 c++ 时出错
- 使用192/256位整数求和无符号64位整数向量的点积的最快方法
- 有哪些方法可以对基于 256 位密钥的矩阵进行加扰?
- 我能确定从文件中读取的 32 字节二进制数据等于 256 位吗?
- 将 32bpp 位图转换为 256 种颜色
- 博坦 AES-256,32 位初始矢量
- 有效地将 16 位整数哈希为 256 位空间
- 英特尔 AVX:用于双精度浮点变量的 256 位版本点积
- 转换 256 十六进制表中的 512 位
- 如何在c或c++中循环生成随机的256位十六进制
- 如何从文件中读取前256位并将其存储在两个数组中
- AES-NI 256位块加密
- Intel AVX:为什么没有256位的双精度浮点变量点积版本?
- McRypt Linux如何使用rijndael 256 cbc
- 256位Rijndael块大小
- AVX 256位代码的性能略低于等效的128位SSSE3代码
- 如何从256位的消息中获取特定的位
- OpenSSL: AES CCM 256位大文件块加密:是否可能?
- 256位AVX矢量中32位浮点的水平和
- AES 256 位加密在 pdf 文件中