Asp.net 指定的初始化向量(IV)与此算法的块大小不匹配

Asp.net 指定的初始化向量(IV)与此算法的块大小不匹配,asp.net,vb.net,as3crypto,aescryptoserviceprovider,Asp.net,Vb.net,As3crypto,Aescryptoserviceprovider,我试图解密一些文本并得到这个错误。我经常在谷歌上搜索,读文章。很多人都有同样的错误,但我无法解决我的问题 下面是一些代码示例,您可以看到我正在使用的IV IV由AS3crypto生产。您可以在中看到演示 您可以在“密钥”选项卡上看到。我的设置是AES,CBC i、 我不能更改IV,我认为IV是有效的 我认为问题在于我在.Net中设置IV的方式不正确 有什么想法吗,伙计们 提前谢谢 Using aesAlg As New AesCryptoServiceProvider Dim I

我试图解密一些文本并得到这个错误。我经常在谷歌上搜索,读文章。很多人都有同样的错误,但我无法解决我的问题

下面是一些代码示例,您可以看到我正在使用的IV

IV由AS3crypto生产。您可以在中看到演示 您可以在“密钥”选项卡上看到。我的设置是AES,CBC

i、 我不能更改IV,我认为IV是有效的

我认为问题在于我在.Net中设置IV的方式不正确

有什么想法吗,伙计们

提前谢谢

Using aesAlg As New AesCryptoServiceProvider

       Dim IV_COMPONENT As Byte() = Convert.FromBase64String("a462114bca101105db976158381a4d05")
       //Dim IV_COMPONENT As Byte() = Encoding.ASCII.GetBytes("a462114bca101105db976158381a4d05")

        aesAlg.IV = IV_COMPONENT

        aesAlg.Mode = CipherMode.CBC

        ' Create a decrytor to perform the stream transform. 
        Dim decryptor As ICryptoTransform = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV)

          Using msDecrypt As New MemoryStream(cipherText)

            Using csDecrypt As New CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)

                Using srDecrypt As New StreamReader(csDecrypt)

                    plaintext = srDecrypt.ReadToEnd()
                End Using
            End Using
        End Using
    End Using

尝试不同的字符串编码。虽然我在课堂上使用了与您相同的base64字符串,但我可以控制IV生成和编码。也许无论您从哪里获得的IV字节数组的字符串编码形式都使用UTF8或类似的格式

我想我在某个地方读到,只有某些字节数组长度用作IV。检查的一种方法是从不同编码的字符串中获取一个字节数组,并使用最接近2的幂的字节数组(128、256…或192,因为这也是一个常见的幻数)