我正在为我的应用程序创建用户,并使用Spring安全MD5哈希编码器保护它们:
PasswordEncoder encoder = new Md5PasswordEncoder();
String hashedPass = encoder.encodePassword(dbUser.getPassword(), null);
dbUser.setPassword(hashedPass);
所以'admin'变为'd41d8cd98f00b204e9800998ecf8427e'。
这一切都很好,但我也在尝试创建一个当前用户可以去更新其详细信息等的表单。
我对解码MD5哈希并不感到困扰,因为这不是spring(someone already asked)的一部分。但是,当我尝试将其添加到我的表单时,没有任何内容出现。
<form:password cssClass="input" placeholder="Password" path="password" />
如果我添加'showPassword'属性,则MD5哈希会被添加到被阻止的字段中(例如,通过chrome上的圆圈),但是如果我右键单击并且'查看源',哈希就在那里。
如何才能使其显示为原始“管理员”输入的正确字符数? HTML5占位符不起作用,因为用户可能认为他们每次都必须重新输入密码,而javascript绝对不是一个干净的选项。
非常感谢,
托比
答案 0 :(得分:2)
散列的重点是你无法逆转它。你不知道原作是什么,你不知道它是多久。你永远不应该以任何方式展示它。
答案 1 :(得分:1)
我不建议向用户显示密码(或其他机密信息):nether hashed或纯文本。 要解决UX问题,您可以:
1)显示密码的空输入字段
2)根本不显示密码,并使用单独的链接/菜单来更改密码。