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

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

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

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

你需要阅读每个角色

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

或者更安全地使用SecurePassword属性

 SecureString pass = pbox1.SecurePassword 

每个MSDN :

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

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

 SecureString pass = pbox1.SecurePassword.Copy();