Spring Security 从md5迁移到bcypt的问题

pkbketx9  于 2023-06-23  发布在  Spring
关注(0)|答案(1)|浏览(131)

目前,该应用程序正在进行重大升级,因此我将Spring Security 3迁移到Spring Security 5.8.3。
我知道我们可以通过使用纯文本--> md5散列--> bcrypt update将md5转换为brcypt。
但主要的问题是MD5哈希。
由于它已经被弃用,我正在检查createDelegatingPasswordEncoder()方法的实现,下面的代码显示为depricated

encoders.put("MD5", new org.springframework.security.crypto.password.MessageDigestPasswordEncoder("MD5"));

我试着用下面的代码,但它没有工作

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

真的很感激它,如果有人能帮助我如何可以用户登录与他们的md5散列密码。
只是希望用户可以登录一次,因为成功登录后,我可以更新MD5哈希到Brypt
我还为passwordencoder创建了一个bean

<bean id="passwordEncoder"
        class=" org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" />
vq8itlhq

vq8itlhq1#

如果你查看源代码,MD5编码器被称为MessageDigestPasswordEncoder,然后你将其公开为bean,它应该被框架自动拾取,只要你不做任何奇怪的自定义身份验证,这是不好的做法。

@Bean
public static PasswordEncoder passwordEncoder() {
    return new MessageDigestPasswordEncoder("MD5");
}

相关问题