我的 Web 应用程序包含一个配置文件编辑页面,用户可以在其中更改他们的电子邮件地址、密码等。密码字段是 HTML“密码”类型,因此它会自动用项目符号字符掩盖其内容。密码作为哈希值保存在数据库中,所以我没有将实际密码加载到字段中,我只是加载字符串“********”,它显示为八个项目符号。然后当表单提交时,我检查提交的值,如果它不是“********”,则保存新密码。
问题是用户经常发送帮助票说他们的密码没有正确保存,因为他们输入了 6 或 10 或任何长度的密码,但当他们返回配置文件编辑页面时出现 8 个点。所以该网站的行为符合预期,但我已经厌倦了向用户解释这一点,并试图考虑如何在该字段中显示准确的点数。
我唯一能想到的就是在我保存密码时将密码长度与散列密码一起保存,然后使用该长度来显示正确的点数。但这会不太安全,因为它会向黑客显示每个密码的长度。
另一种选择是将密码字段加载为空,希望用户不会因此而感到困惑。或者我可以将此选项显示为“更改密码”表单,以表明该表单未尝试加载保存的密码。
但首先我想知道是否有一个技巧可以准确地显示这些点?