AesCryptoServiceProvider - “填充无效,无法删除”+ c#

时间:2017-06-21 08:49:34

标签: c# aescryptoserviceprovider

我已经解决了同样的问题,但没有任何帮助。我检查了我的代码,它和他们建议的一样。

//Create the hash value from the array of bytes.
byte[] KeyHashValue = SHhash.ComputeHash(Encoding.UTF8.GetBytes(key.Length > 0? key : Password));

aesProvider.BlockSize = 128;
aesProvider.KeySize = 256;
aesProvider.IV = App.iv;
aesProvider.Key = KeyHashValue;
aesProvider.Mode = CipherMode.CBC;
aesProvider.Padding = PaddingMode.PKCS7;
//aesProvider.Padding = PaddingMode.None;

// Convert Base64 strings to byte array
byte[] src = System.Convert.FromBase64String(encrypted);

// decryption
using (ICryptoTransform decrypt = aesProvider.CreateDecryptor())
{
    try
    {
        byte[] dest = decrypt.TransformFinalBlock(src, 0, src.Length); ---> Getting crash at this line.
        plain = Encoding.Unicode.GetString(dest);

    }
    catch (Exception exception)
    {
        System.Windows.MessageBox.Show("In catch of decrypt  : " + exception.Message);
    }

}

有人可以建议我所需的更改吗?我也尝试将填充更改为无,但这也不起作用。

更新: 我在这里使用电子邮件ID作为密钥。如果我使用它可以使用的小写字母,但如果我在电子邮件ID中使用任何大写,则会出现此错误。

0 个答案:

没有答案