我看到這個線程:SecureString解決方案很好,但有內在的矛盾?
When would I need a SecureString in .NET?
代碼有:
SecureString password = new SecureString("password");
VS
SecureString pass = new SecureString();
foreach (char c in "password".ToCharArray())
pass.AppendChar(c);
而且我明白了第二個的利益(加字符由char) - 這樣黑客就不能跟蹤所有隨機存儲在內存中的字符(相對於mem中的一個字符串,他可以使用f IND)。我不understnad
的部分原因是,部分:
是黃色的代碼是謙恭的記憶!
so ... 其中是好處嗎?
我認爲「密碼」字符串(for循環)應儘快GC'ed。 GC.collect會在這裏幫助嗎? (在for循環之後) – 2011-12-31 13:44:08
不,''「密碼」'是文字,它不會被收集。 – 2011-12-31 13:49:23
1)爲什麼不收集?沒有人在foreach循環之後再引用他2)如果它不會被收集,那麼黑客可以搜索它並找到它......請澄清:) – 2011-12-31 13:53:26