【问题标题】:Spring Security - Alter username on the way inSpring Security - 在途中更改用户名
【发布时间】:2013-12-14 01:05:56
【问题描述】:

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

这就是数据库的样子..

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

我正在使用 Spring Security 编写一个 Web 应用程序。当用户输入 0101 作为用户名,然后输入 abcd123 作为密码时,我已经设法使身份验证工作。

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

我通过覆盖 org.springframework.security.core.userdetails.UserDetailsS​​ervice > loadUserByUsername(String userId) 让我的代码使用前导零。

我开始查看 salt,然后意识到我完全走错了路,因为这与我的使用密码无关。

如何更改我的代码以符合我的要求?我试图破解我自己的 loadUserByUsername(String userId) 实现,在方法中添加一个 0 ,但这不起作用。

谢谢

【问题讨论】:

  • 为什么要存储密码和哈希?基本上这是不安全的,因为您存储的是纯密码,这是您永远不应该做的事情。关于前面应该工作的 0 。您可以尝试使用初始的userId,如果找不到,请使用0+userId 重试。
  • MD5 也不应该用于散列,因为它很容易破解。有了spring security,你就不用担心盐了。它为你处理。你也应该看看 BCrypt 密码编码器。 stackoverflow.com/questions/8521251/…
  • 感谢 cmets 伙计们。但我没有实现散列。我只是将我的应用程序连接到其中。如果我所做的应该有效,我会坚持下去。谢谢

标签: spring spring-mvc spring-security


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-06-08
    • 2017-02-14
    • 2021-10-27
    • 2012-01-18
    • 2020-04-06
    • 2014-08-12
    • 2017-07-31
    • 2016-04-27
    • 2012-12-10
    相关资源
    最近更新 更多