MySQL PASSWORD() 函数和 SpringSecurity ShaPasswordEncoder

3
我有一个MySQL数据库,使用MySQL的PASSWORD()函数存储密码。从我了解到的信息(并验证自己确保其适用于我的MySQL版本)来看,MySQL的哈希函数是双重SHA1哈希,第一个结果在进行哈希之前会被转换为十六进制。参考链接:http://www.palominodb.com/blog/2011/12/04/hashing-algorithm-mysql-password。请注意,本文中保留了HTML标签,但不包括解释。
SELECT PASSWORD("this_is_a_random_string") as 'pass';

pass: *12E76A751EFA43A177049262A2EE36DA327D8E50

SELECT concat('*', UPPER(SHA1(UNHEX(SHA1("this_is_a_random_string"))))) as 'pass';

pass: *12E76A751EFA43A177049262A2EE36DA327D8E50

我希望使用SpringSecurity的ShaPasswordEncoder来让Spring能够处理这些哈希值。

除了子类化自己的PasswordEncoder并使用ShaPasswordEncoder来构建上述SQL中显示的处理步骤之外,ShaPasswordEncoder本身是否有一种标准的方式来设置自己以与MySQL的PASSWORD函数配合使用?


+1 有趣的揭示。但我同意Bill Karwin的答案。 - Devart
1个回答

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接