SpringSecurity对密码进行加密(与md5加密对比)

前言

使用springboot开发项目的时候,对于登录功能,我们都会对用户的密码进行一个加密,以保证对用户账号的安全性做保障,接下来我将演示如何使用SpringSecurity对密码进行加密

在演示SpringSecurity的加密之前,首先看一下spring本身提供的md5的加密的方式
@Test
public void test(){
	//md5加密
	String password = DigestUtils.md5DigestAsHes("123456".getBytes());
	System.out.println(password);
	//加密后的密码 :E10ADC3949BA59ABBE56E057F20F883E
}

这样得到的密码虽然一般人都看不懂,但是及其容易破解,只需要访问MD5解密即可将这个加密的密码破解,安全性不高
为了解决md5加密的安全性问题,加盐对于md5加密是比不可少的

何谓加盐?
密码加盐里包含随机值和加密方式。随机值是电脑随机产生的,并且以随机的方式混在原始密码里面,然后按照加密方式生成一串字符串保存在服务器。然后讲盐值存储到数据库中,若需要登录,则还要从数据库中取出加盐字段和密码一起进行破解

由于md5加密的不安全和加盐的繁琐,SpringSecurity提供了更加安全且便捷的方式对密码进行加密

使用SpringSecurity,就需要导相关依赖

<dependency>
     <groupId>org.springframework.security</groupId>
     <artifactId>spring-security-core</artifactId>
</dependency>
@Test
public void test(){
	BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
	String password = passwordEncoder.encode("123456");
}

使用该方法对密码进行加密,很难进行破解,因为该方法已经自动加盐,并且提供了自动解密的方法

@Test
public void test(){
	BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
	boolean matchs = passwordEncoder.matchs("123456",//数据库中取出的已经加密的密码);
	//若返回值为true,则密码正确,若为false,则错误
}

SpringSecurity简化了密码的加密方式,并且也大大的提高了安全性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值