Spring Security--PasswordEncoder详解

Spring Security支持bcrypt, PBKDF2等主流加密方法进行密码存储和校验。由于高并发场景下加密校验开销大,推荐使用session, OAuth等短期加密策略。Delegating PasswordEncoder允许通过{id}+原始密文指定加密方式,但在生产环境中应避免明文存储,错误配置会导致异常,加密算法应选择主流且可更新。" 132930461,20015771,PCIe接口OAM卡:智能硬件的监控与管理,"['智能硬件', 'PCIe', '硬件管理']
摘要由CSDN通过智能技术生成

Becoming Involved

Spring Security封装了如bcrypt, PBKDF2, scrypt, Argon2等主流适应性单向加密方法( adaptive one-way functions),用以进行密码存储和校验。单向校验安全性高,但开销很大,单次密码校验耗时可能高达1秒,故针对高并发性能要求较强的大型信息系统,Spring Security更推荐选择如:session, OAuth,Token等开销很小的短期加密策略(short term credential)实现系统信息安全。

Delegating PasswordEncoder

使用PasswordEncoderFactories创建需要的Encoder,Spring Security集成的PasswordEncoder的id如下:

PasswordEncoder passwordEncoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();

//或自定义创建PasswordEncoder
String idForEncode = "bcrypt";
Map encoders = new HashMap<>();
encoders.put(idForEncode, new BCryptPasswordEncoder());
encoders.put("noop", NoOpPasswordEncoder.getInstance());

PasswordEncoder passwordEncoder = new DelegatingPasswordEncoder(idForEncode, encoders);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值