C# 要解密的数据长度无效。这真的是长度问题吗?

C# 要解密的数据长度无效。这真的是长度问题吗?,c#,encryption,C#,Encryption,我想解密一个base64编码的HTTP响应。我已经得到了fPassword和fSalt,但是响应的偏移量和字符串的长度我无法确认 现在我得到一个提示: 加密异常:要解密的数据长度无效。 这是否意味着数据的偏移量或长度不正确?这个错误是什么意思 当提示执行FlushfinalBlock时发生异常 public static byte[] dd_1(string string_0) { byte[] buffer = Convert.FromBase64String(s

我想解密一个base64编码的HTTP响应。我已经得到了
fPassword
fSalt
,但是响应的偏移量和字符串的长度我无法确认

现在我得到一个提示:

加密异常:要解密的数据长度无效。

这是否意味着数据的偏移量或长度不正确?这个错误是什么意思

当提示执行FlushfinalBlock时发生异常

   public static byte[] dd_1(string string_0)
    {
        byte[] buffer = Convert.FromBase64String(string_0);

        AesManaged managed = new AesManaged();
        Rfc2898DeriveBytes bytes = new Rfc2898DeriveBytes(fPassword, fSalt);
        managed.BlockSize = managed.LegalBlockSizes[0].MaxSize;
        managed.KeySize = managed.LegalKeySizes[0].MaxSize;
        managed.Key = bytes.GetBytes(managed.KeySize / 8);
        managed.IV = bytes.GetBytes(managed.BlockSize / 8);
        ICryptoTransform transform = managed.CreateDecryptor();
        MemoryStream stream = new MemoryStream();
        CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Write);
        stream2.Write(buffer, 0, buffer.Length);
        stream2.Close();
        return stream.ToArray();
    }

你是怎么加密的?“要解密的数据长度无效”通常意味着您在加密端做了一些错误的事情,要么是在读取字节[]之前忘记清除流,要么是将字节[]编码为不正确的文本。@Scott Chamberlain:谢谢!这些数据不是我加密的,而是别人加密的。但是我们知道加密算法。我不熟悉加密算法,只是通过反向操作得到了silverlight客户端资源。我确信我已经得到了完整的加密HTTP响应。所以我假设我用于从整个加密HTTP响应中剪切的偏移量是错误的……我的猜测是,它本质上意味着“你给我的数据是垃圾,我知道,因为它的长度不正确”。你读过书吗?在使用其他人的数据进行测试之前,您还应该使用加密的数据测试代码(这样您就可以验证数据是否绝对正确)。@Justin:谢谢您的提示,让我再试一次。