出现错误:“;指定的块大小对于该算法“无效”;初始化AesCryptoProvider时
本文关键字:算法 于该 无效 初始化 AesCryptoProvider 错误 | 更新日期: 2023-09-27 18:24:57
我正在尝试使用更大的块大小进行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:位于System.Security.Cryptography.SymmetricAlgorithm.set_BlockSize(Int32值)位于中的ConsoleApplication4.Program.EncryptFile(String in File,RSACryptoServiceProvider rsPublicKey)C: ''Projects''ConsoleApplication4''Program.cs:line 117
我肯定错过了一些有趣的东西,有线索吗?
AES似乎只支持等于128的块大小。看来,您可以通过将数据处理为多个块来解决这一问题。
源
每个算法只支持特定的块大小。
参见SymmetricAlgorithm.LegalBlockSizes
。