找到最后一个块的中间值

时间:2014-12-08 21:30:13

标签: c# cryptography aes

解密过程中常见的错误是"填充无效且无法删除"。

如果我正在尝试调试发送方使用的模式的填充,如何访问最后一个块的内容(包括无效的填充)?

请参阅下面AesManaged的MSDN示例的略微修改版本:

using ( MemoryStream msDecrypt = new MemoryStream( cipherText ) )
{
    using ( CryptoStream csDecrypt = new CryptoStream( msDecrypt, decryptor, CryptoStreamMode.Read ) )
    {
        using ( StreamReader srDecrypt = new StreamReader( csDecrypt ) )
        {
            try
            {
                plaintext = srDecrypt.ReadToEnd();
            }
            catch ( CryptographicException )
            {
                // ???
            }
        }
    }
}

1 个答案:

答案 0 :(得分:2)

使用填充模式解密(在AesManaged之前CreateDecryptor()上设置)