在没有 Java 的情况下验证 Md5PasswordEncoder 哈希?
Validate Md5PasswordEncoder hash without Java?
我们正在将一些后端 API 调用从 Java 转移到 Node,但我们一直在使用 Md5PasswordEncoder 对密码进行哈希处理。
如果我运行以下:
Md5PasswordEncoder pe = new Md5PasswordEncoder();
pe.encodePassword("1", "1");
我得到结果:
6a8a1f634e38d30e87b450899b31f810
但是,如果我手动散列“11”,我会得到:
6512bd43d9caa6e02c990b0a82652dca
我已经尝试过 pass 和 salt 的其他组合,但我无法弄清楚 Md5PasswordEncoder 如何将 salt 与密码结合起来。有什么想法吗?
时很简单
盐添加为
String merged = password + "{" + salt.toString() + "}";
所以得到 1{1}
的 MD5,瞧瞧!
请注意,据我所知,这不是 "standard" 添加盐的方法。在文献中,通常只是说 "the salt is added to the password" 而没有详细说明它是如何添加、添加或附加的,并带有一些特殊标记,例如上述实现中的 {}
。重要的是确保哈希的所有处理程序都知道添加盐的方式(否则你会遇到问题)。
我们正在将一些后端 API 调用从 Java 转移到 Node,但我们一直在使用 Md5PasswordEncoder 对密码进行哈希处理。
如果我运行以下:
Md5PasswordEncoder pe = new Md5PasswordEncoder();
pe.encodePassword("1", "1");
我得到结果:
6a8a1f634e38d30e87b450899b31f810
但是,如果我手动散列“11”,我会得到:
6512bd43d9caa6e02c990b0a82652dca
我已经尝试过 pass 和 salt 的其他组合,但我无法弄清楚 Md5PasswordEncoder 如何将 salt 与密码结合起来。有什么想法吗?
盐添加为
String merged = password + "{" + salt.toString() + "}";
所以得到 1{1}
的 MD5,瞧瞧!
请注意,据我所知,这不是 "standard" 添加盐的方法。在文献中,通常只是说 "the salt is added to the password" 而没有详细说明它是如何添加、添加或附加的,并带有一些特殊标记,例如上述实现中的 {}
。重要的是确保哈希的所有处理程序都知道添加盐的方式(否则你会遇到问题)。