gpt4 book ai didi

c# - 设置密码框的文本

转载 作者:太空宇宙 更新时间:2023-11-03 19:57:13 24 4
gpt4 key购买 nike

我正在创建一个需要用户登录(用户名 + 密码)的应用程序。由于这是一个安全的应用程序,我使用 WPF 的 PasswordBox.SecurePassword 安全地创建密码哈希(使用 SHA512CryptoServiceProvider,从自定义流中哈希)用作 Rfc2898DeriveBytes 的密码。假设我有一个 AES-256-CBC 实现,它可以安全地检索和存储 key +IV,所以这不是问题。
我目前正在实现一种方法,让用户能够存储他们的密码,这样他们就不必在每次登录时都输入密码。到目前为止,我能够使用 AES 自定义实现安全地存储密码,并且我可以安全地读取密码(也就是说,无需将其以纯文本形式完全放入内存中)。
我遇到的问题是当我尝试替换密码框中的文本时。 PasswordBox.SecurePassword 是只读的,我尝试使用 PasswordBox.SecurePassword.AppendChar(someChar) 但字段/值仍然为空。我想 PasswordBox.SecurePassword 只返回一个副本 (SecureString.Copy()) 而不是原始变量 ( looking at .NET source code confirms this )。
有什么方法可以实现我想要的,或者我是否需要创建自定义 WPF 控件?

最佳答案

要在 WPF 中设置 PasswordBox 的文本,请使用以下代码:

PasswordBox1.Password = "yourpassword";

您不需要使用SecurePassword 功能,只要您能够以纯文本形式获取密码,您就可以使用密码功能设置它。正如您提到的 SecurePassword 函数是只读的,这是因为它以安全形式检索密码,它不允许您在 PasswordBox 中设置文本。 MSDN Documentation

如果您希望能够将安全密码放入 PasswordBox 中,您也可以使用此方法,但您不能将其以纯文本形式放入,因为您实际上会要求破解加密,但如果您有 key ,您可以解密它,然后先解密,然后在 PasswordBox 中设置文本。

要以纯文本形式查看在 PasswordBox 中输入的密码,请使用以下代码:

PasswordBox1.Password;

关于c# - 设置密码框的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32299335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com