本文章转载于【SpringBoot+Vue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客
仅用于学习和讨论,如有侵权请联系
源码:https://gitee.com/green_vegetables/x-admin-project.git
素材:https://pan.baidu.com/s/1ZZ8c-kRPUxY6FWzsoOOjtA 提取码:up4c
项目概述笔记:https://blog.csdn.net/m0_37613503/article/details/128961102
数据库笔记:https://blog.csdn.net/m0_37613503/article/details/128961401
前端笔记:https://blog.csdn.net/m0_37613503/article/details/128961447
后端笔记:https://blog.csdn.net/m0_37613503/article/details/128961569
1、登录接口我要做一个加密,这是我们要做的第一件事情
1.1 找到我们新增接口这个位置

2、目前这个逻辑非常简单,用户新增之前,给他一次加密就行,这里建议使用md不可加密的方式
3、我们先导入一个依赖,具体导这个

3.1 完整写法

4、我们刷新一下Maven看看有没有出错误

4.1 接下来,我写到启动类上

5 我们可以配置一个Bean

6 这个passwordEncoder我们可以可以点进去看一看

6.1 发现他里面是一个接口,我们得创建一个子类对象

7 点一下左面这个

8 我们现在常用就是这个

9、我们new一个对象,new的这个对象是密码的控制类,写完之后,我们就可以用它了

10、来到我们之前的控制器当中

11、我们注入一下,把他注入一下

12、然后在这里做一下加密处理

13、它里面有一个转码方法,encode

14、将用户传入的密码传入过去,这样就做好了,他就帮我们做了一个加密的控制,比如你创建了一二三四五六,每一次他都做了加语言的处理

15、重启一下项目

16、新增一条数据

17、新增成功,这就是我们加密后的语言

18、这数据库的两条数据其实都是一二三四五六,但是由于进行了加密处理,他进行了加语言的处理,这样新增的接口已经搞定了,现在我们看一看登录的逻辑。

19、现在我想问你如何登录呢?现在看一下我们的登录逻辑,找到我们的serive,根据我们的用户和密码去查询,我们的serive

20、哪怕在加密之前,做同样的密码处理也查不出来,因为我第一次插入的123456,和第二次插入的123456,同一个字符串不是同样的值,所以你就没有办法通过这个查询去查到

21、所以你怎么办那?那你怎么查那,只能先根据用户名来查,再来做判断,这里先将老逻辑注释掉,然后再重新写份新的

22、新的话我就要根据用户,而不是用户名和密码进行查询了

23、所以这个密码我暂时就不要了

24、查完之后,再来比对这个密码,结果不为空

25 怎么进行匹配,给他加一个判断,给他加一个@Autowired注入一下

26、他提供了一个matches方法,encodepassword,是已转码的密码,已转码的密码就是数据库里的密码

27、前面就是原始的,就是已经传入的

28、他会帮你实现比较

29、传入就是他,他是第一个参数

29.1
30、第二个参数是我们从数据中已经查出来的,已转码的


31、现在就可以了,解决了我们密码的问题

32、你是运维人员,你要拿着密码跑路,你也破解不了
