如何在mysql中散列密码以实现spring安全兼容性
我一次加载了很多用户配置文件。我使用如何在mysql中散列密码以实现spring安全兼容性,mysql,spring-security,Mysql,Spring Security,我一次加载了很多用户配置文件。我使用password()函数为mysql数据库生成SQL脚本。 但这不行。生成的密码与spring boot应用程序表单中生成的密码不同 这适用于运行在linux 4.15.0-54和java 8上的MySQL服务器5.7.26 例如,对于密码字符串“test0000”,spring security生成的密码为: 5f7433f76544679849ec917c3baa70e0852b3d025fb52ecb7839c6fe911f75c49b3b2315aa3
password()
函数为mysql数据库生成SQL脚本。
但这不行。生成的密码与spring boot应用程序表单中生成的密码不同
这适用于运行在linux 4.15.0-54和java 8上的MySQL服务器5.7.26
例如,对于密码字符串“test0000”,spring security生成的密码为:
5f7433f76544679849ec917c3baa70e0852b3d025fb52ecb7839c6fe911f75c49b3b2315aa3589c
但mysql中的password('test0000')函数提供:
*FED47FB319BAC61E726825628D8A5D22979E9F1C
那么,如何在mysql或linux的命令行中生成类似springboot的密码呢?mysql的password()
函数使用SHA1(SHA1(密码))
来计算哈希值
Spring Security使用PasswordEncoder
接口来encode
和match
,并且有不同的实现可用于处理BCrypt、MD5、SHA256等
因此,为了使密码在两端都兼容,您需要使用相同的算法
由于散列算法很慢,因此不建议在SQL中使用这些算法 解决方案可能是java控制台应用程序