Spring MD5外观形式

时间:2013-03-05 13:28:32

标签: java html spring spring-security

我正在为我的应用程序创建用户,并使用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绝对不是一个干净的选项。

非常感谢,

托比

2 个答案:

答案 0 :(得分:2)

散列的重点是你无法逆转它。你不知道原作是什么,你不知道它是多久。你永远不应该以任何方式展示它。

答案 1 :(得分:1)

我不建议向用户显示密码(或其他机密信息):nether hashed或纯文本。 要解决UX问题,您可以:

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

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