gpt4 book ai didi

java - Spring Security >5.0.0 移除了 Md5PasswordEncoder

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:04:40 27 4
gpt4 key购买 nike

我有一个使用 Spring 安全性的 Spring 项目。我之前使用的是 Spring Boot 1.5,现在迁移到了 Spring Boot 2.0。

我注意到 Md5PasswordEncoder已在 Spring Security 的最终版本中删除。相反,即使已弃用 ( https://docs.spring.io/spring-security/site/docs/5.0.3.RELEASE/api/),Md4PasswordEncoder 仍然存在。

我应该使用外部 MD5 编码器还是将分类移动到其他地方?

最佳答案

Md5PasswordEncoder 不复存在的事实并不意味着 Spring Security 5 无法创建 MD5 哈希。为此,它使用 new MessageDigestPasswordEncoder("MD5")

有两个选项,都与新的 DelegatingPasswordEncoder 一起使用,它需要一个密码前缀来确定哈希算法,例如 {MD5}password_hash:

要么将默认密码编码器设置为MD5(大写!),因此如果密码没有前缀,则应用默认编码器:

PasswordEncoder passwordEncoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();
passwordEncoder.setDefaultPasswordEncoderForMatches(new MessageDigestPasswordEncoder("MD5"));

或者{MD5}作为数据库中现有密码散列的前缀。这样,DelegatingPasswordEncoder 委托(delegate)给“MD5”哈希器。像这样的东西:

update myusertable set pwd = '{MD5}' || pwd;

关于java - Spring Security >5.0.0 移除了 Md5PasswordEncoder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49633672/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com