首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AesCryptoServiceProvider解密

AesCryptoServiceProvider解密
EN

Stack Overflow用户
提问于 2014-12-13 14:39:08
回答 1查看 1.5K关注 0票数 1

我正在尝试使用这个函数解密,但是我不确定是什么导致它失败的。

代码语言:javascript
复制
  public string Decrypt(byte[] cipherText, byte[] IV, byte[] key)
    {

        using (AesCryptoServiceProvider AESDecrypt = new AesCryptoServiceProvider())
        {

            //here we set the key and IV instead having the class generate them.
            AESDecrypt.IV = IV;
            AESDecrypt.Key = key;

            ICryptoTransform decryptor = AESDecrypt.CreateDecryptor(AESDecrypt.Key, 
                                 AESDecrypt.IV);

            using (MemoryStream msDecrypt = new MemoryStream(cipherText))
            {
                using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, 
                     decryptor, CryptoStreamMode.Read))
                {
                    using (StreamReader srDecrypt = new StreamReader(csDecrypt))
                    {
                        csDecrypt.Flush();
                        plainText = srDecrypt.ReadToEnd();
                        return plainText;
                    }
                }
            }
       }

    }

plainText返回一个空字符串。密钥和IV是在以前的函数中生成的系统,并且正在被正确地传递。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-13 16:13:01

我误读了第一个问题的答案,并使用.flushfinalblock让它返回“密文”,而没有真正解决根本的问题。当我移动密码= msEncrypt.ToArray();在密码流之外,它工作得很好。并删除了.flush()。.FacePalm()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27459964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档