出现错误:“;指定的块大小对于该算法“无效”;初始化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

我肯定错过了一些有趣的东西,有线索吗?

出现错误:“;指定的块大小对于该算法“无效”;初始化AesCryptoProvider时

AES似乎只支持等于128的块大小。看来,您可以通过将数据处理为多个块来解决这一问题。

每个算法只支持特定的块大小。

参见SymmetricAlgorithm.LegalBlockSizes

相关文章: