收到错误:初始化AesCryptoProvider时"指定的块大小对此算法无效"

kal*_*shi 3 .net c# encryption aes

我正在尝试使用更大的块大小进行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; 
    }
}
Run Code Online (Sandbox Code Playgroud)

并达到以下例外:

System.Security.Cryptography.CryptographicException未处理
Message =指定的块大小对此算法无效.
Source = mscorlib StackTrace:位于C:\ Projects\ConsoleApplication4\Program.cs中的ConsoleApplication4.Program.EncryptFile(String inFile,RSACryptoServiceProvider rsaPublicKey)中的System.Security.Cryptography.SymmetricAlgorithm.set_BlockSize(Int32值):第117行

我肯定错过了一些有关任何线索,任何线索?

小智 6

似乎AES仅支持块大小等于128.看起来您可以通过将数据作为多个块处理来解决这个问题.

资源