我们正在将一些后端API调用从Java移动到Node,但我们一直在使用Md5PasswordEncoder来使用salt来密码密码。
如果我运行以下内容:
Md5PasswordEncoder pe = new Md5PasswordEncoder();
pe.encodePassword("1", "1");
我得到了结果:
6a8a1f634e38d30e87b450899b31f810
但是,如果我手动哈希" 11"我明白了:
6512bd43d9caa6e02c990b0a82652dca
我已尝试过pass和salt的其他组合,但我无法弄清楚Md5PasswordEncoder如何将salt与密码组合在一起。有什么想法吗?
答案 0 :(得分:4)
添加盐
String merged = password + "{" + salt.toString() + "}";
所以得到1{1}
的MD5和il!
请注意,据我所知,这不是添加盐的“标准”方式。在文献中,通常只是说“盐被添加到密码中”而没有详细说明它是如何添加,添加或附加的,以及上面实现中的{}
之类的特殊标记。重要的是要确保散列的所有处理程序都知道添加盐的方式(否则你会遇到问题的情况)。