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

Ant*_*ony 5 c# wpf

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

 SecureString pass = new SecureString();
        pass.AppendChar(pbox1.Password);
Run Code Online (Sandbox Code Playgroud)

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

hem*_*emp 18

每个MSDN:

获取Password属性值时,将密码作为纯文本显示在内存中.要避免此潜在的安全风险,请使用SecurePassword属性将密码作为SecureString获取.

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


Pha*_*bus 9

你需要阅读每个角色

SecureString pass = new SecureString();

foreach (char c in pbox1.Password)
{
  pass.AppendChar(c);
}
Run Code Online (Sandbox Code Playgroud)

或更安全地使用SecurePassword属性

SecureString pass = pbox1.SecurePassword
Run Code Online (Sandbox Code Playgroud)

  • 这样做几乎违背了使用`SecureString`的目的. (4认同)