MySQL PASSWORD()函数和Spring Security ShaPasswordEncoder

时间:2013-12-12 01:43:38

标签: mysql hash spring-security

我有一个mysql数据库,使用MySQL的PASSWORD()函数存储密码。从我可以从这个URL收集(并自己验证它以确保它适用于我的MySQL版本)

  

http://www.palominodb.com/blog/2011/12/04/hashing-algorithm-mysql-password

mysql的散列函数是一个双SHA1散列,第一个结果从二进制转换为十六进制,然后再次进行散列。

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 个答案:

答案 0 :(得分:2)

http://dev.mysql.com/doc/refman/5.6/en/encryption-functions.html#function_password

  

PASSWORD()函数由MySQL服务器中的身份验证系统使用;你不应该在你自己的应用程序中使用它。