我要一次加载很多用户个人资料。我使用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?
答案 0 :(得分:0)
MySQL的password()
函数使用SHA1(SHA1(password))
来计算哈希值。
Spring Security使用PasswordEncoder
到encode
和match
的接口,并且具有可用于处理BCrypt,MD5,SHA256等的不同实现。
因此,为了使密码在两端兼容,您需要使用相同的算法。
由于哈希算法很慢,因此不建议在SQL中使用这些算法。