将wpf密码框插入C#中的SecureString

时间:2010-06-04 23:12:43

标签: c# wpf

我试图将wpf密码框中的数据转换为安全字符串。怎么做的? 到目前为止我所拥有的:

 SecureString pass = new SecureString();
        pass.AppendChar(pbox1.Password);

这当然不起作用,那么如何在不创建常规字符串的情况下获取密码数据呢?

3 个答案:

答案 0 :(得分:17)

Per MSDN

  

获取密码属性时   值,您将密码公开为   内存中的纯文本。为了避免这种情况   潜在的安全风险,使用   获取SecurePassword属性   密码作为SecureString。

除非您绝对需要字符串的纯文本版本,否则应避免使用Password属性。在这种情况下,直接检索SecureString。

答案 1 :(得分:8)

你需要阅读

中的每个角色
SecureString pass = new SecureString();

foreach (char c in pbox1.Password)
{
  pass.AppendChar(c);
}

或更安全地使用SecurePassword属性

SecureString pass = pbox1.SecurePassword

答案 2 :(得分:3)

SecureString pass = pbox1.SecurePassword.Copy();