[英]Got Error: “Specified block size is not valid for this algorithm” while initialize AesCryptoProvider
我正在尝试使用更大的块大小进行AES加密:
private static void EncryptFile(string inFile, RSACryptoServiceProvider rsaPublicKey)
{
using (AesCryptoServiceProvider aes = new AesCryptoServiceProvider())
{
// Create instance of AesManaged for
// symetric encryption of the data.
aes.KeySize = 256;
// Allocating 64K
aes.BlockSize = 8 * 1024 * 64;
}
}
并达到以下例外:
System.Security.Cryptography.CryptographicException未处理
消息=指定的块大小对此算法无效。
Source = mscorlib StackTrace:位于C:\\ Projects \\ ConsoleApplication4 \\ Program.cs中的ConsoleApplication4.Program.EncryptFile(String inFile,RSACryptoServiceProvider rsaPublicKey)中的System.Security.Cryptography.SymmetricAlgorithm.set_BlockSize(Int32值):第117行
我肯定错过了一些有关任何线索,任何线索?
似乎AES仅支持块大小等于128.看起来您可以通过将数据作为多个块处理来解决这个问题。
每种算法仅支持某些块大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.