第三节课,后端登录【1】.1--本人

一、后端登录逻辑,检测账户密码是否合法及密码输入是否正确

视频链接:

网址:

第三节:【视频】后端登录逻辑,检测账户密码是否合法及密码输入是否正确视频链接:-CSDN博客

从5.1开始

这是一个Java方法,名为doLogin,接收两个参数:userAccount(用户账号)和userPassword(用户密码)。返回值类型为Yupi1。

public Yupi1 doLogin(String userAccount, String userPassword) {
    // 在这里实现登录逻辑
}

5.1  本人效果图:

    /**
     *
     * @param userAccount   用户账户
     * @param userPassword  用户密码
     * @return   脱敏后的用户信息
     */
   Yupi1 doLogin(String userAccount,String userPassword);

5.3 开始

此处直接顺着敲击

5.7 跑完了一部分

对应的代码步骤如下:

引用日志:写出错误

将在两个函数中都用到的变量放在最外面

手写代码如下:

        // 1.校验  账户、密码、校验码  是否包含任何真空值(包含空格或空值)
        // if (true 里面任意一个字段:包含空格或空值)  return -1; 就失败了
        if(StringUtils.isAnyBlank(userAccount,userPassword))
        {
            return null;
        }
        if (userAccount.length() < 4)
        {
            return null;
        }
        if (userPassword.length() < 8 )
        {
            return null;
        }

        // 账户不能包含特殊字符
        // m.find();//返回true 输入的账户有 特殊字符,需重新输入
        String validPattern = "[`~!@#$%^&*()+=|{}':;',\\\\[\\\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";
        Matcher matcher = Pattern.compile(validPattern).matcher(userAccount);
        if (matcher.find())
        {
            return null;
        }

        // 3.对密码进行加密(密码千万不要直接以明文存储到数据库中)
        // 写代码前,已测试
        /**
         * 在本项目,test 文件夹下,UserCenterApplicationTests 里面书写代码,运行测试的
         *
         *    @Test
         *     void testDigest() throws NoSuchAlgorithmException{
         *         String newPassword = DigestUtils.md5DigestAsHex(("abcd" + "mypassword").getBytes());
         *         System.out.println(newPassword);
         *     }
         *
         * 运行成功  输出为:(16进制)【可变】78e3504a70116aa7474d614b517809c6
         *
         */
        
        String encryptPassword = DigestUtils.md5DigestAsHex((sAlt + userPassword).getBytes());

        //查询用户是否存在,以及判断密码是否等于加密后的算法
        QueryWrapper<Yupi1> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("userAccount",userAccount);
        queryWrapper.eq("userPassword",encryptPassword);
        Yupi1 yupi1 = yupi1Mapper.selectOne(queryWrapper);
        if (yupi1 == null) {
            log.info("user Login failed, userAccount cannot match userPassword");
            return null;
        }

        long count = yupi1Mapper.selectCount(queryWrapper);

        return null;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/581307.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网工内推 | 云计算运维,厂商云相关认证优先,股票期权,全勤奖

01 国科科技 招聘岗位&#xff1a;云计算运维 职责描述&#xff1a; 1、负责私有云平台的运维管理工作,包括云平台日常运维、故障处理、扩容、版本升级、优化和维护等。 2、根据业务需求,从技术角度支持及配合各业务系统上云工作。 3、为云上业务系统提供云产品、云服务方面的…

嵌入式全栈开发学习笔记---Linux基本命令4

目录 压缩和解压缩 tar -zcf 压缩包的名字 需要压缩的文件 tar -xzf 压缩包的名字 查找命令 Find 路径 -name “文件名” grep “搜索的关键字” 路径 -R 我们最后学习几个命令&#xff1a; 我们有的时候下载一些文件、软件、库&#xff0c;它会以压缩包的形式出现&am…

Git零基础

Git工作流程图 操作指令 分支 、 指令总结 远程仓库

玄子Share-PXE高效批量网络装机

玄子Share-PXE高效批量网络装机 部署PXE远程安装服务 PXE 概述 PXE&#xff08;Preboot eXcution Environment&#xff09; 预启动执行环境&#xff0c;在操作系统之前运行 服务端 运行DHCP服务&#xff0c;用来分配地址、定位引导程序运行TFTP服务&#xff0c;提供引导程…

计算机网络——应用层协议(1)

在这篇文章初识网络中&#xff0c;我介绍了关于计算机网络的相关知识&#xff0c;以及在这两篇文章中Socket编程和Socket编程——tcp&#xff0c;介绍了使用套接字在两种协议下的网络间通信方式。本篇文章中我将会进一步介绍网络中网络协议的部分&#xff0c;而这将会从应用层开…

基于SpringBoot+Vue乡村养老服务管理系统

项目介绍&#xff1a; 使用旧方法对乡村养老服务管理系统登录的信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在乡村养老服务管理系统登录的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误…

[笔试训练](十)

目录 028&#xff1a;最长回文子串 029&#xff1a;买卖股票的最好时机&#xff08;一&#xff09; 030&#xff1a;过河卒 028&#xff1a;最长回文子串 最长回文子串_牛客题霸_牛客网 (nowcoder.com) 题目&#xff1a; 题解&#xff1a; 1.中心扩展算法&#xff1a; 每…

Docker镜像和容器操作

目录 一.Docker镜像创建与操作 1. 搜索镜像 2. 获取镜像 3. 镜像加速下载 4. 查看镜像信息 5. 查看下载的镜像文件信息 ​编辑6. 查看下载到本地的所有镜像 7. 根据镜像的唯一标识ID号&#xff0c;获取镜像详细信息 8. 为本地的镜像添加新的标签 9. 删除镜像 10. 存入…

Linux 第十一章

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

BUUCTF-WEB2

[SUCTF 2019]EasySQL1 1.启动靶机 2.寻找注入点和注入方法 随便输入一个字母&#xff0c;没有回显 随便输入一个数字&#xff0c;发现有回显&#xff0c;并且回显结果一样 3.堆叠注入 1; show databases; #查看数据库 1; show tables; #查看数据表 里面有个flag 1;set …

Three.js和Cesium.js中坐标

在了解Three.js和Cesium.js前先了解并弄清楚图形学关于空间的基本概念流程&#xff1a; 计算机图形学 图形学中涉及到多个坐标空间&#xff0c;这些空间之间的变换是图形渲染中的核心部分。下面是一些常见的图形学空间及其变换顺序&#xff1a; 对象空间&#xff08;Object Sp…

【完整指南】如何在Visual Studio Code中轻松运行Llama 3模型?

Meta 发布了最新的开源语言模型Llama 3。因为它是开源的&#xff0c;你可以下载这个模型&#xff0c;并在自己的电脑上运行。 我清楚&#xff0c;你可能会想&#xff0c;在个人笔记本上运行一个拥有80亿参数的AI模型似乎只有技术高手才能做到。但别担心&#xff01;这篇文章会…

MATLAB 运算符

MATLAB 运算符 运算符是一个符号&#xff0c;告诉编译器执行特定的数学或逻辑操作。MATLAB设计为主要在整个矩阵和数组上运行。因此&#xff0c;MATLAB中的运算符既可以处理标量数据&#xff0c;也可以处理非标量数据。MATLAB允许以下类型的基本运算- 算术运算符 关系运算符…

前端复习资料

前端复习资料 落叶的位置&#xff0c;谱出一首诗&#xff0c;时间在消逝&#xff0c;我们的故事。 这篇文章呢&#xff0c;整理写给需要的前端同学的。 核心知识&#xff0c;必须掌握的&#xff0c;也是最基础的&#xff0c;譬如浏览器模型&#xff0c;渲染原理&#xff0c;JS…

网页模版如何用

现在的网页模版已经得到了许多人的喜爱和使用。随着人们对互联网的需求不断增加&#xff0c;更多的公司和组织需要拥有自己的网站&#xff0c;以推广他们的品牌和服务。而网页模版为他们提供了一个简单而高效的方法来创建自己的网站。 网页模版是预先设计好的网站模板&#xff…

【数据分析】NumPy

文章目录 [toc]ndarray的创建np.array()方法np.arange()方法np.zeros()方法np.ones()方法np.full()方法np.eye()方法np.random模块np.random.random()方法np.random.randint()方法np.random.choice()方法np.random.shuffle()方法 ndarray的属性ndarray.dtypendarray.ndimndarra…

初识BootStrap

目录 前言: 1.Bootstrap的特点包括&#xff1a; 1.1响应式设计&#xff1a; 1.2组件丰富&#xff1a; 1.3易于定制&#xff1a; 1.4兼容性良好&#xff1a; 1.5强大的社区支持&#xff1a; 1.6一致的样式和布局&#xff1a; 1.7 插件和扩展性 2.初识Ajax: 2.1同步请求…

Linux——(关于权限常见的3个问题)

文章目录 1.修改文件或者目录的拥有者和所属组1.1chown指令1.2chgrp指令 2.常见的权限三个问题2.1对应一个目录&#xff0c;如果要进入&#xff0c;需要什么权限&#xff1f;2.2为什么我们创建的文件默认权限不是7772.2.1关于Linux下的权限掩码 2.3文件能否被删除取决于什么2.3…

Paddle OCR v4 微调训练文字识别SVTRNet模型实践

文字识别步骤参考&#xff1a;https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/recognition.md 微调步骤参考:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7.1/doc/doc_ch/finetune.md 训练必要性 原始模型标点符号和括号容易识别不到 数据…

【kettle004】kettle访问本地MySQL数据库并处理数据至execl文件

一直以来想写下基于kettle的系列文章&#xff0c;作为较火的数据ETL工具&#xff0c;也是日常项目开发中常用的一款工具&#xff0c;最近刚好挤时间梳理、总结下这块儿的知识体系。 熟悉、梳理、总结下MySQL关系数据库相关知识体系 3.欢迎批评指正&#xff0c;跪谢一键三连&…