Spring Security-在进入的过程中更改用户名

Spring Security-在进入的过程中更改用户名,spring,spring-mvc,spring-security,Spring,Spring Mvc,Spring Security,我有一个数据库,其中密码是用普通的旧md5加密的。没有盐。所有用户名都是数字 这就是db的样子 用户名、密码、哈希密码 0101,abcd123,79cfeb94595de33b3326c06ab1c7dbda 我正在使用spring security编写一个web应用程序。当用户输入0101作为用户名,然后输入abcd123作为密码时,我成功地实现了身份验证 但我真正想做的是,用户输入101(不带前导零)作为用户名,输入abcd123作为密码 通过重写org.springframework.s

我有一个数据库,其中密码是用普通的旧md5加密的。没有盐。所有用户名都是数字

这就是db的样子

用户名、密码、哈希密码 0101,abcd123,79cfeb94595de33b3326c06ab1c7dbda

我正在使用spring security编写一个web应用程序。当用户输入0101作为用户名,然后输入abcd123作为密码时,我成功地实现了身份验证

但我真正想做的是,用户输入101(不带前导零)作为用户名,输入abcd123作为密码

通过重写org.springframework.security.core.userdetails.UserDetailsService>loadUserByUsername(字符串userId),我的代码可以使用前导零

我开始研究salt,然后意识到我完全走错了方向,因为这与我的使用密码无关

我如何修改我的代码以满足我的需求?我试图破解我自己的loadUserByUsername(String userId)实现,在方法中预先添加一个0,但这不起作用


谢谢大家的建议。幸运的是,我在数据库中找到了另一个名为sign-on id的列。它包含用户为登录应用程序而输入的实际字符串。

为什么要存储密码和哈希?基本上,这是不安全的,因为您存储的是普通密码,这是您永远不应该做的事情。关于预加一个0,它应该可以正常工作。您可以使用初始的
userId
重试,如果找不到,请使用
0+userId
重试。MD5也不应用于哈希,因为它很容易被破解。有了spring security,你就不必担心盐了。这是为你处理的。您还应该看看BCrypt密码编码器。谢谢大家的评论。但是我没有实现哈希。我只是把我的申请挂在上面。如果我所做的事情有用,我会坚持下去。Thks