C# · 12月 24, 2021

c# – SecureString存储在内存中并提供密码?或者是其他东西?

我一直在为自己编写一个程序,使用C#,我可以使用它来存储我的密码,然后检索它们以供查看/编辑.

当密码以加密格式存储到磁盘时,当它们被读入存储器中以在表单上进行显示/编辑时,它们是未加密的.

我知道在内存中加密密码是一个很大的安全问题,所以我遇到了SecureString类.

使用SecureString类还是SecureString的名称呢?会有更安全的方法吗?

解决方法 SecureString将其文本保存在内存中,您可以在不需要时立即将其处理.问题是,当你想显示它或几乎任何其他方式使用它,你必须将其转换为正常的字符串,这是不安全的.

此外,我不会太依赖它 – 系统能够解密它没有任何解密密钥,这意味着确定的黑客最有可能做同样的事情.当黑客获得对您的计算机的控制时,您无法确定任何东西,他将可能使用良好的算法访问任何未加密的密钥.