不使用BCryptPasswordEncoder的Spring Boot 密码加密的最佳方式?

mtb9vblg  于 2022-10-30  发布在  Spring
关注(0)|答案(2)|浏览(240)

我如何加密用户登录密码除了BCryptPasswordEncoder。假设我没有使用这个依赖。

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
     </dependency>
mftmpeh8

mftmpeh81#

BCryptPasswordEncoder只是另一个编码器。Spring提供了许多这样的编码器的实现。你可以使用不同的单向哈希算法的实现,如SHA-256,SHA-512等。Java在java.security包中提供了相同的实现。检查java.security.MessageDigest类。
使用类似BCryptPasswordEncoder的编码器的一个好处是你不需要自己生成随机密码salt。它会处理这个问题,并隐式使用随机salt,这就是为什么每次对相同的纯文本生成不同的编码字符串。

nx7onnlm

nx7onnlm2#

经过搜索,我发现最好的做法是使用编码器,因为Chetan Ahirrao说。我发现的解决方案是添加

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-crypto</artifactId>
    <version>5.7.3</version>
</dependency>

并使用B加密密码编码器

@Bean
    public BCryptPasswordEncoder bCryptPasswordEncoder() {
        return new BCryptPasswordEncoder(10);
    }

相关问题