CodeGo.net> SecureString的解决方案是好的,但有内在矛盾吗?
作者:互联网
我看到了这个线程:
When would I need a SecureString in .NET?
代码是:
SecureString password = new SecureString("password");
与
SecureString pass = new SecureString();
foreach (char c in "password".ToCharArray())
pass.AppendChar(c);
而且我确实理解第二个字符的好处(逐个字符添加char)-以便黑客无法跟踪内存中随机位置的所有字符(相对于他可以在内存中找到一个字符串).
我不了解的部分是该部分:
那个黄色代码在内存中有区别!
那么…好处在哪里?
解决方法:
ToCharArray()的第二个代码示例仅演示了填充安全字符串的受限方法.它不是(最佳)实践的样本.
链接到的线程可以提供大多数答案:Securestring提供了避免纯文本密码(在内存中)的部分解决方案.不是完整的解决方案.
但是,请从接受的答案中得出以下两点:
> WPF的PasswordBox控件在内部将密码保留为SecureString.
> System.Diagnostics.ProcessInfo的Password属性是SecureString.
它们一起使您可以安全地将密码传输到进程.
标签:securestring,c,net 来源: https://codeday.me/bug/20191101/1986859.html