Spring Security中的Password Encoding

【目录】

  1. 背景
  2. 关于NoOpPasswordEncoding
  3. 其它Pasword Encoder
  4. 关于DelegatingPasswordEncoding
  5. 收获

0. 背景

在自定义配置Spring Security时,你或许会注意到这段代码。

	@Bean
	public static PasswordEncoder passwordEncoder() {
    
		return NoOpPasswordEncoder().getInstance();
	}

代码中提到的NoOpPasswordEncoder是什么?

关于NoOpPasswordEncoder

字面理解它是一个某某密码编译器(No Operate Password Encoder,即:无任何操作的密码密码编译器)。

看一下NoOpPasswordEncoder类的代码,通过注释了解到,该类已经弃用且不安全。它并不会对密码做什么操作,只是为了测试为目的的。也就是说在encode、matches过程中密码都是明文的。

所以在Spring文档中见到它,不足为奇了,因为它容易理解,但是真的在项目中使用Spring Security时不应该是NoOpPasswordEncoder.

其它Password Encoder

NoOpPasswordEncoder的注释中推荐我们有针对性的选择使用BCryptPasswordEncoder、Pbkdf2PasswordEncoder、SCryptPasswordEncoder中的一种。并推荐最好使用DelegatingPasswordEncoder,因为它支持密码升级。

暂时可以先这样理解:前三种都是根据某个算法对PasswordEncoder接口的具体实现,DelegatingPasswordEncoder是N种具体算法的代理实现。

通过这几个类的注释了解到BCryptPasswordEncoder、Pbkdf2PasswordEncoder、SCryptPasswordEncoder都是基于某种算法的PasswordEncoder接口的实现类。使用时需要根据需要,有选择的使用其中的一种即

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值