我正在尝试查看我的SecureString
是否包含特定文字。
我可以这样做:
var sstr = new SecureString();
...
//sstr is now appended with a set of characters
if(sstr.ToString().Contains("Hello world")) {
//do something
}
这很有效,但是当我sstr.ToString()
时,似乎我刚刚将SecureString
中的内容写入记忆中,这完全违背了使用SecureString
的目的
如何检查SecureString
是否包含某些文字?
答案 0 :(得分:1)
检查它而不破坏SecureString
目的的最佳方法是在进程输出缓冲区循环中,然后进入SecureString
安全缓冲区。但在最好的情况下,这样做你会创建一个包含最后N个字符的普通内存字符串(N为" Hello world" length),这有点不安全。比调用SecureString.ToString()更不安全,因为正如你已经说过的那样,它会将所有文本存储在普通内存中,从而无法实现目的。