破坏托管变量的内容

时间:2014-07-23 01:05:31

标签: c#

我有一个使用加密技术的应用程序,主要是在流(文件和内存)中,我根据需要将其解密到新的MemoryStream中。这一切都运作良好。 唯一的问题是,当我完成它时,我想要删除MemoryStream的内容(以及字符串等我将部分复制到其中)以防止它通过交换文件以解密的形式被分页到磁盘。 在#34;良好的老式" C ++我会在删除之前用随机垃圾突击显示数据 - 管理对象有什么办法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用MemoryStream.GetBuffer获取基础字节[],然后使用随机数据填充它。

在不安全的上下文中,您通常会使用Random.NextBytes执行此操作,但在您的情况下,RNGCryptoServiceProvider.GetBytes会提供加密安全的随机数生成器作为填充字节的来源。

删除缓冲区后,通过调用MemoryStream.Dispose来正常处理MemoryStream。