我尝试编写一个程序,您可以使用它登录到远程网站。对于一些拥有多个帐户的人,我尽量让他们更容易,并将帐户数据存储在IsolatedStorage
. 在我的代码的当前状态下,密码只是在 a 中输入,TextBox
一旦存储转换为 MD5 哈希。
现在我想将它重构为正确的代码,但我被卡住了。
A通过和PasswordBox
公开其数据。PasswordBox.SecureString
PasswordBox.Password
所以当点击我的保存按钮时,我会执行类似的操作
public void OnClick(...)
{
var password = passwordBox.Password;
// store it somehow (e.g. custom MD5 encryption)
var savePassword = passwordBox.SecureString;
// store this string somehow, but how?
}
这是我的问题
- 一旦我将普通密码从我的
PasswordBox
输入var password
中,内存中是否有可见的东西?一些黑客是否能够通过反射/调试使这个简单的值可见?哪个代码使这些字符串真正可见?我需要注意什么? - 怎么处理
SecureString
的PasswordBox
?
我对所有这些东西有点不知所措,我还无法弄清楚如何正确处理应用程序中的密码的本质。
我不是恳求一个完整的解决方案和运行代码。如果有人可以让我开始,我会很高兴。而且,我不想要企业解决方案。我只是在寻找一个,它易于实现并且尽可能节省我投入的精力。