我有一个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函数?
答案 0 :(得分:2)
http://dev.mysql.com/doc/refman/5.6/en/encryption-functions.html#function_password
PASSWORD()函数由MySQL服务器中的身份验证系统使用;你不应该在你自己的应用程序中使用它。