繁体   English   中英

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

[英]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.看起来您可以通过将数据作为多个块处理来解决这个问题。

资源

每种算法仅支持某些块大小。

请参见SymmetricAlgorithm.LegalBlockSizes

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM