【稻草人问答项目—Day02】Spring-Security 验证以及授权框架、使用Bcrypt算法加密、自定义登陆页面

【稻草人问答项目—Day02】Spring-Security 验证以及授权框架、使用Bcrypt算法加密、自定义登陆页面

在这里插入图片描述

Day01 项目:【稻草人问答项目—Day01】环境搭建、数据库的连接、LOMBOK框架、MYbatis Plus Generator 代码生成器

接着Day 01项目继续往下进行

一、Spring安全框架的概述以及使用

1. Spring安全框架概述
  • 不是随随便便的一个人就可以访问我们的网站页面,获取数据,那样我们的网站会很不安全,容易被黑客攻击;为此我们要给我们的网站做一些安全措施
  • Spring安全框架: Spring-Security,是Spring提供的安全管理框架,所谓安全管理指登录控制,权限管理,访问规则等一个网站的安全设置,Spring-Security可以实现初级程序员编写少量代码实现较高安全级别的程序,现在主流的安全框架除了Spring-Security还有Shiro
2.Spring安全框架初步使用
  • 1、在我们portal项目中添加依赖
<!-- Spring Security -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- Spring Security Test -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-test</artifactId>
    <scope>test</scope>
</dependency>
  • 依赖一旦添加成功,当前网站的所有资源都会被Spring-Security保护起来了,必须输入用户名和密码来访问,默认的用户名是user,密码会在启动服务时随机生成,输出到控制台上,
  • 如果不想使用默认的用户名和密码,可以在application.properties文件中设置:
# 配置Spring-Security的用户名和密码
spring.security.user.name=admin
spring.security.user.password=123123
  • 但是采用明文密码有安全隐患,别人就可以直接在配置文件中看到密码:123123,所以我们要进行密码加密

二、Bcrypt算法加密

  • 现在主流的加密算法:MD5,BCrypt,这里我们使用Bcrypt
  • Spring-Security框架直接包含了BCrypt的加密对象,供我们直接使用

BCrpty加密

  • 1、首先在测试类中编写代码运行Bcrtpy的加密代码
@Test
public void bcrypt(){
   
    //这个类就是能够对字符串进行加密的类
    BCryptPasswordEncoder encoder=
            new BCryptPasswordEncoder();
    //将字符串加密的方法encode
    String pwd=encoder.encode("123456");
    //输出加密之后的字符串
    System.out.println(pwd);
    //$2a$10$MMHXEOPzAmVoDVbEpfcu5Om8tWcmnhREAYgmIeVrxmJkzMKD/L4cS
    //每次运行程序加密的结果是不同的,这是加密算法的“加盐”
    //虽然每次生产的结果不同,但是一定能表示我们要加密的内容
}

结果:
在这里插入图片描述

  • 补充:加密算法“加盐” 就是每次运行程序加密的结果是不同的,虽然每次生产的结果不同,但是一定能表示我们要加密的内容
  • 2、验证一个字符串是否匹配一个加密结果
@Test
public void bcrypt(){
   
    //这个类就是能够对字符串进行加密的类
    BCryptPasswordEncoder encoder=
            new BCryptPasswordEncoder();
   
    //下面验证匹配结果
    //要匹配的字符串
    String str="123123";
    //要验证的加密结果<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值