我正在尝试将更大的块大小用于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
  Message =指定的块大小对此算法无效。
  来源= mscorlib StackTrace:
         在System.Security.Cryptography.SymmetricAlgorithm.set_BlockSize(Int32
  值)
         在ConsoleApplication4.Program.EncryptFile(String inFile,RSACryptoServiceProvider rsaPublicKey)中
  C:\ Projects \ ConsoleApplication4 \ Program.cs:第117行


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

最佳答案

看来AES仅支持等于128的块大小。看来您可以通过将数据作为多个块进行处理来解决此问题。

source

10-08 11:38