我正在尝试将解密的数据从 System.Security.Cryptography.CryptoStream 传输到 System.Security.SecureString。查看 CryptoStream 的 IL 代码,它似乎像任何其他 System.Buffer 一样缓冲转换后的数据。我可以大块地读出数据,然后将其附加到我的 SecureString;缓冲的数据是短暂的(在方法内),但 SecureString 本身可能会停留一段时间。
使用 GCHandle 将缓冲数据固定在内存中以通过防止 GC 复制来减少攻击面是否有意义,或者这完全不需要?此外,是否有更好的方法将转换后的数据从 CryptoStream 放入 SecureString?