加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 出错:初始化AesCryptoProvider时“指定的块大小对此算法

发布时间:2020-12-16 01:51:13 所属栏目:百科 来源:网络整理
导读:我正在尝试使用更大的块大小进行AES加密: private static void EncryptFile(string inFile,RSACryptoServiceProvider rsaPublicKey){ using (AesCryptoServiceProvider aes = new AesCryptoServiceProvider()) { // Create instance of AesManaged for // s
我正在尝试使用更大的块大小进行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 was unhandled
Message=Specified block size is not valid for this algorithm.
Source=mscorlib StackTrace:
at System.Security.Cryptography.SymmetricAlgorithm.set_BlockSize(Int32
value)
at ConsoleApplication4.Program.EncryptFile(String inFile,RSACryptoServiceProvider rsaPublicKey) in
C:ProjectsConsoleApplication4Program.cs:line 117

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

解决方法

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

source

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读