我正在尝试从内存中删除任何普通字符串的痕迹,为此我正在SecureString
从普通字符串的引用创建一个实例。像这样:
public static unsafe void Burn(this string input)
{
fixed (char* c = input)
{
var secure = new SecureString(c, input.Length);
secure.Dispose();
}
}
问题是即使在调用 dispose 方法后,其内容也input
不会改变。据我了解,SecureString
实例应该引用input
地址,因此如果在Dispose()
调用时从内存中清除。我错过了什么?