我正在使用具有 Spring 安全性的 BCryptPasswordEncoder 。我的期望是对于相同的输入我总是会得到相同的输出。但是对于相同的输入,我得到不同的输出。您可以使用下面的代码片段对其进行测试:
String password = "123456";
PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String encodedPassword = passwordEncoder.encode(password);
System.out.print(encodedPassword);
输出:\(2a\)10$cYLM.qoXpeAzcZhJ3oXRLu9Slkb61LHyWW5qJ4QKvHEMhaxZ5qCPi
输出2:\(2a\)10$KEvYX9yjj0f1X3Wl8S.KPuWzSWGyGM9ubI71NOm3ZNbJcwWN6agvW
输出 3:\(2a\)10$nCmrPtUaOLn5EI73VZ4Ouu1TmkSWDUxxD4N6A.8hPBWg43Vl.RLDC
有人可以解释一下,为什么 BCryptPasswordEncoder 会这样吗?
原文由 Bhavesh 发布,翻译遵循 CC BY-SA 4.0 许可协议