如何在MySQL中对密码进行哈希处理以确保Spring安全性

时间:2019-07-09 23:09:43

标签: mysql spring-security

我要一次加载很多用户个人资料。我使用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?

1 个答案:

答案 0 :(得分:0)

MySQL的password()函数使用SHA1(SHA1(password))来计算哈希值。

Spring Security使用PasswordEncoderencodematch的接口,并且具有可用于处理BCrypt,MD5,SHA256等的不同实现。

因此,为了使密码在两端兼容,您需要使用相同的算法。

由于哈希算法很慢,因此不建议在SQL中使用这些算法。