0

我正在为我的应用程序创建用户,并使用 Spring security MD5 哈希编码器保护他们:

PasswordEncoder encoder = new Md5PasswordEncoder();
String hashedPass = encoder.encodePassword(dbUser.getPassword(), null);
dbUser.setPassword(hashedPass);

所以'admin'变成'd41d8cd98f00b204e9800998ecf8427e'。

这一切都很好而且很花哨,但我也在尝试创建一个表单,当前用户可以在其中更新他们的详细信息等。

我不介意解码 MD5 哈希,因为这不是 spring 的一部分(有人已经问过)。但是,当我尝试将其添加到我的表单时,什么也没有出现。

<form:password cssClass="input" placeholder="Password" path="password" />

如果我添加“showPassword”属性,则 MD5 散列被添加到被屏蔽的字段中(例如,通过 chrome 上的圆圈),但如果我右键单击并“查看源”,散列就在那里。

我怎样才能使它显示为正确数量的字符作为原始“管理员”输入?HTML5 占位符不起作用,因为用户可能认为他们每次都必须重新输入密码,而 javascript 绝对不是一个干净的选择。

非常感谢,

托比

4

2 回答 2

2

哈希的全部意义在于您无法反转它。你不知道原件是什么,也不知道它有多长。你不应该以任何方式展示它。

于 2013-03-05T13:31:09.250 回答
1

我不建议向用户显示密码(或其他机密信息):无论是散列还是纯文本。要解决用户体验问题,您可以:

1)显示密码的空输入字段

2)根本不显示密码,并有单独的链接/菜单来更改密码。

于 2013-03-05T13:56:57.777 回答