【发布时间】:2010-06-04 23:12:43
【问题描述】:
我正在尝试将 wpf 密码框中的数据转换为安全字符串。这是怎么做的? 到目前为止我所拥有的:
SecureString pass = new SecureString();
pass.AppendChar(pbox1.Password);
这当然行不通,那么如何在不创建常规字符串的情况下获取密码数据?
【问题讨论】:
我正在尝试将 wpf 密码框中的数据转换为安全字符串。这是怎么做的? 到目前为止我所拥有的:
SecureString pass = new SecureString();
pass.AppendChar(pbox1.Password);
这当然行不通,那么如何在不创建常规字符串的情况下获取密码数据?
【问题讨论】:
当您获得 Password 属性时 值,您将密码公开为 内存中的纯文本。为了避免这种情况 潜在的安全风险,使用 SecurePassword 属性来获取 作为 SecureString 的密码。
除非绝对需要字符串的纯文本版本,否则应避免使用 Password 属性。在这种情况下,直接检索 SecureString。
【讨论】:
你需要读取每个字符
SecureString pass = new SecureString();
foreach (char c in pbox1.Password)
{
pass.AppendChar(c);
}
或更安全地使用 SecurePassword 属性
SecureString pass = pbox1.SecurePassword
【讨论】:
SecureString的目的。
SecureString pass = pbox1.SecurePassword.Copy();
【讨论】: