security工作笔记003---SpringSecurity框架启动报错.bcrypt.BCryptPasswordEncoder‘ that could not be found.

在SpringBoot应用中遇到启动时错误,问题出在BCryptPasswordEncoder的注入位置。通常这类注入应在类顶部,但此处错误地在ScAuthApplication启动类中配置。解决办法是在启动类中添加@Bean注解,创建BCryptPasswordEncoder实例,从而解决启动报错。

 JAVA技术交流QQ群:170933152 

醉了,一般这个注入不都是在类顶上注入嘛,这个可好,跑到

ScAuthApplication 中去注入了。。搞了半天,也记录一下吧

这里先说一下,其实就是在启动类中,去配置:

package cn.gov.rongcheng.scauth;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

@SpringBootApplication
public class ScAuthApplication {

   

   //1........加上这个Bean注入这个就好了.

    @Bean
    public BCryptPasswordEncoder bCryptPasswordEncoder(){ //这里注入了就可以了
  &nbs

### 如何使用 `BCryptPasswordEncoder` 进行密码加密 在 Spring Security 中,`BCryptPasswordEncoder` 是一种强大的工具用于对用户密码进行哈希处理。它通过bcrypt算法实现单向加密,并支持可配置的强度参数来调整安全性[^1]。 下面是一个完整的代码示例展示如何创建并使用 `BCryptPasswordEncoder` 对密码进行加密以及验证: ```java import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; public class PasswordEncoderExample { public static void main(String[] args) { // 创建 BCryptPasswordEncoder 实例,默认强度为 10 BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); // 需要加密的原始密码 String rawPassword = "mySecurePassword"; // 加密后的密码 String encodedPassword = passwordEncoder.encode(rawPassword); System.out.println("原始密码: " + rawPassword); System.out.println("加密后的密码: " + encodedPassword); // 测试匹配功能 boolean isMatched = passwordEncoder.matches(rawPassword, encodedPassword); System.out.println("密码是否匹配: " + isMatched); } } ``` 上述代码展示了两个主要的功能: - **加密**: 调用 `passwordEncoder.encode()` 方法生成一个基于 bcrypt 的哈希值[^4]。 - **校验**: 使用 `passwordEncoder.matches()` 来比较明文密码与存储的哈希值是否一致。 需要注意的是,即使输入相同的明文密码多次调用 `encode()` 方法也会得到不同的结果,这是因为每次都会自动生成一个新的随机盐值 (Salt)[^2]。 关于加密强度,可以通过构造函数传递一个整数值作为 `strength` 参数控制复杂度,默认值为 10。更高的值会增加计算成本从而提高安全性但也可能影响性能[^3]。 #### 注意事项 虽然有提到 SHA-256 参与其中,但实际上最终实现仅依赖于 bcrypt 算法完成不可逆转换操作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

添柴程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值