【问题标题】:wpf password box into a SecureString in C#在 C# 中将 wpf 密码框转换为 SecureString
【发布时间】:2010-06-04 23:12:43
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    Per MSDN:

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

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

    【讨论】:

    • 要是有办法使用 SecureString 设置密码就好了
    【解决方案2】:

    你需要读取每个字符

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

    或更安全地使用 SecurePassword 属性

    SecureString pass = pbox1.SecurePassword
    

    【讨论】:

    • 这样做几乎违背了使用SecureString的目的。
    【解决方案3】:
    SecureString pass = pbox1.SecurePassword.Copy();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      • 2010-10-23
      • 2016-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多