Security源码接口PasswordEncoder不同版本的用法

PasswordEncoder是一个加密接口,新老版本放的包路径不一样,新版本方法名简化,对老版本已经弃用。

老版本类路径:org.springframework.security.authentication.encoding.PasswordEncoder

接口定义了两个方法,encodePassword()方法是对原始密码进行加密,采用hash+salt方式,在方法中应用系统得提供盐值(salt)。isPasswordValid()方法是用来验证密码是否正确的,得提供三个参数,加密后的密码、原始密码以及盐值(salt)。缺点就是每次加密和解密都得提供盐值,加密后的密码是固定的,而且接口实现复杂,存在多继承和实现。


新版本类路径:org.springframework.security.crypto.password.PasswordEncoder

接口定义了两个方法,encode方法是对方法加密,入参只有原始密码,而且每次获取的加密后的密码不一样;而match方法是用来验证密码和加密后密码是否一致的,如果一致则返回true。优点盐值不用用户提供,每次随机生成,多重加密——迭代SHA-256算法+密钥+随机盐来对密码加密,大大增加密码破解难度,而且接口实现简单,不存在多继承。 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值