首页 > 其他分享 >2022-09-03 第四小组 王星苹 学习笔记

2022-09-03 第四小组 王星苹 学习笔记

时间:2022-09-03 19:11:34浏览次数:68  
标签:03 加密 String 09 Controller --- 密码 vip 2022

学习心得

今天学习了mvc模式,这种写法很清晰明了,可以处理很多,可以给密码加密,主要就是加密很重要

心情

学习了MD5加密,感觉很神奇,这样数据库就算被盗,也登陆不上去,变得更安全

掌握情况:一般还行,现在很少出现404了

学习总结:

mvc架构:

是一种软件架构模式,把整个软件分为三层: Model、 View、 Controller

 1. Model:模型----获取数据,并且处理数据,返回给Controller。

               entity:数据库实体类User----user表

               service:业务控制层,其余的活都交给service

               dao:数据模型层---操作数据库,执行sql

 2. View:视图---- 看见的页面,渲染数据,渲染页面。

 3. Controller:控制器----servlet,接请求,给响应。

 

耦合度:代码之间的关联关系。

为什么要分层?

MVC,降耦合。重用性高。可维护性高。

调用关系:

View层发起请求---Controller--- Service---Dao---Service---Controller---View

导入jar包,导入js文件, 复制粘贴之前的JDBC工具类,字符集的过滤器

我们之前的做法,一个servlet就只处理一个请求?

一个servlet,能不能处理多个post请求? 可以的。

利用反射

MVC设计模式理念: 一张表,一个entity, 一个service, 一个dao, 一个controller

和表对应的实体类

要求:

1.类名和表名要相同

2.类中的属性名和表中的字段名相同

3.类中只能有对应的set,get方法和需求用到的构造器,如果有需要,可以写toString。

4.序列化.实现序列化接口

 

业务层

业务:软件的功能

登录,注册

我们在dao层写了个方法save,保存

加盐(密码加密)

这个方法的参数是原始密码,在controller通过request.getParameter("")接到的写在密码框中的密码

返回值是经过加密处理过后的密码

加盐 salt

MD5+盐 加密

MD5算法

 1 public class MD5Util {
 2     /*
 3         获取用来加密的盐
 4      */
 5     public static String getSalt(){
 6         //从我定义的一组数据中拿出几个数字,字母或者符号当作盐
 7         String words = "abcdefghijklmnopqrstuvwsyz0123456789!@#$%^&*()_+~";
 8         StringBuilder strb = new StringBuilder();
 9         //从我定义的数据中取出8个字符,当作盐
10         for (int i = 0; i < 8 ; i++) {
11             //随机数
12             //生成0-字符串的长度的随机数[0,长度)
13             strb.append(words.charAt((int) Math.floor(Math.random() * words.length())));
14         }
15         return strb.toString();
16     }
17 
18 
19 
20 
21 public static String stringToMD5(String str){
22     return DigestUtils.md5Hex(str.getBytes(StandardCharsets.UTF_8));
23 }
24  

密码在加盐加密过后登录的时候怎么办?

登录的时候,肯定输入的还是比如说你自己输入的“123456”

登陆的时候还得按照加盐加密的形式来比对,还需要拿着123456和之前加密时候的盐再按照规则加密过后再比对

问题:我们能找到上次加密的时候用的那个盐吗?

盐 怎么处理???

我们需要把加密时候用的盐记录下来,登陆的时候还需要使用!

唯一的办法就是把这个盐也加入到数据库中,所以就需要再添加一个字段

 public int register(Vip vip){
        //注册的业务执行的就是保存的操作
        try {
            //密码的加密处理
            //生成盐
            String salt = MD5Util.getSalt();
            //对密码进行加密
//            String newPassword = MD5Util.stringToMD5(vip.getPassword()+salt);
            //加密过后还要重新赋值给vip
            vip.setPassword(MD5Util.stringToMD5(vip.getPassword()+salt));
            vip.setSalt(salt);


            return dao.save(vip);


        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    

 

标签:03,加密,String,09,Controller,---,密码,vip,2022
From: https://www.cnblogs.com/wxp0909/p/16653344.html

相关文章

  • 2022-9-3 第一组 (≥▽≤) 学习笔记
    目录1.MVC架构使用关系Model模型层实体类(entity)业务层(service)数据模型层(dao)View层Controller层工具类加密类所需的jar包1.MVC架构一种软件架构模式,把整个软件分为三层:M......
  • 2022广西师范大学暑期训练赛
    C猪脑过载思路:我是把第一个位置放1,最后一个位置放1,中间放0的,其实也可以是第一个位置放2,其他位置放0。代码:intmain(){intT=read();while(T--){......
  • 2022-4分之3总结
    序:时间过得很快,是真的快,可能多了几根白发,关键是我还年轻,日。正文:心里面有很多想法,很多产品,很多软件,但是就是没法一一动手实现,这该怎么办,项目:0x1:从前......
  • 2022.09.02
    CodeforcesRound#818(Div.2)赛时:476+904+1176+930+0+0补题:476+904+1176+930+600+0A.MadokaandStrangeThoughts求满足\(a,b\leqn\)且\(\frac{lcm(a,b)}{g......
  • 2022-2023-1 20221419 《计算机基础与程序设计》第1周学习总结
    2022-2023-120221419《计算机基础与程序设计》第1周学习总结作业信息班级:[2022-2023-1-计算机基础与程序设计]https://edu.cnblogs.com/campus/besti/2022-2023-1-CF......
  • 2022年工匠杯赛题
    1.第一题fromrandomimportchoicefromnumpyimport*importpandasaspdimportmatplotlib.pyplotasplt#1df=pd.read_csv('stock_prices.tsv',sep='\t')......
  • 2022-2023-1 20221326 《计算机基础与程序设计》第一周学习总结
    作业信息班级:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK01作业目标:快速浏览教材作业正文:博客......
  • 【Oracle初学者】ORA-01034: ORACLE not available
    系统报错代码ORA-01034:ORACLEnotavailable出现原因//在启动实例时,关闭了数据库,导致外部软件无法访问Oracle数据库(大部分都是因为数据库监听或者服务关闭导致出现的......
  • Solution Set -「AGC 001~003」C~F
    目录「AGC001C」ShortenDiameter「AGC001D」ArraysandPalindrome*「AGC001E」BBQHard*「AGC001F」WildSwap^「AGC002C」KnotPuzzle「AGC002D」StampRally......
  • CVE-2022-22978 Spring-Security 漏洞复现
    1说明在SpringSecurity中使用RegexRequestMatcher且规则中包含带点号的正则表达式时,攻击者可以通过构造恶意数据包绕过身份认证2环境搭建环境搭建地址可以参考如下的......