MD5加密--项目案例
在项目中最尝使用MD5这种非对称加密的就是用户信息登录了。下面我就以一个简单的登录案例来说明MD5的用法
首先来看几张图:
用户登录页:需要选择要登录的系统,同时输入用户的用户名和密码,验证码才能进入到后台的主页
数据库的管理员的用户名和密码 密码是已经加密好的字段
OK,那么接下里的程序逻辑已经很明确了:
就是在前台页面输入填写好用户名,密码等各种各样的信息,表单提交给后台,在业务逻辑层查一下redis缓存,或者是查一下数据库有没有就好了,
如果有,则跳转到主页,如果没有,则弹出提示框,提醒用户的用户名或者是密码输入错误。
接下来就是上代码了 从Mapper接口开始写,我是使用逆向工程直接生成的(当然,自己写xml文件也可以,很简单)
@Mapper
public interface ManageUserMapper {
List<ManageUserModel> selectByExample(ManageUserModelExample example);
}
接下来就是业务逻辑层Business
@Service
public class ManageUserBusiness extends BaseBusiness{
private static final Logger logger = LoggerFactory.getLogger(ManageUserBusiness.class); //用户登录
public ManageUserModel getUserByUserNameAndPwd(ManageUserModel manageUserModel){
ManageUserModelExample example = new ManageUserModelExample();
try {
example.createCriteria().andUserNameEqualTo(manageUserModel.getUserName())
.andUserPwdEqualTo(MD5Util.encoderPassword(manageUserModel.getUserPwd()))
.andIsDeleteEqualTo(ManageUserEnums.IS_DELETE.NORMAL.get());
}catch (Exception e){
logger.info("用户名或者密码错误——>"+manageUserModel.getUserName()+","+manageUserModel.getUserPwd());
}
List <ManageUserModel> list = manageUserMapper.selectByExample(example);
if (list == null || list.isEmpty()) {
return null;
} else {
return list.get(0);
}
}
}
然后是控制器
//用户登录信息查询
@RequestMapping(value = "/htm/loginManageUser.htm")
@ResponseBody
public JsonModel loginManageUser(HttpServletRequest request, HttpSession session){
JsonModel jsonModel = new JsonModel();
String userName = request.getParameter("userName");
String password = request.getParameter("userPwd"); ManageUserModel manageUserModel = new ManageUserModel();
manageUserModel.setUserName(userName);
manageUserModel.setUserPwd(password);
ManageUserModel model = manageUserBusiness.getUserByUserNameAndPwd(manageUserModel);
String searchClientId = request.getParameter("searchClientId"); if(model !=null){
session.setAttribute("manageuser",model);
session.setAttribute("searchClientId",searchClientId);
jsonModel.setStatus(true);
jsonModel.setMessage("成功");
jsonModel.setResult(model);
}else{
ArrayList <Object> list = new ArrayList <>();
jsonModel.setStatus(false);
jsonModel.setMessage("您的权限不够,不能进行访问!");
return jsonModel;
}
return jsonModel;
}
ok,测试一下吧,在业务层代码上打一个断点,正确的密码是123,查询经过MD5加密的密码,Alt+F8查看一下变量的值,是不是和数据库的一样,那就说明库中存在该管理信息
再看一下控制器Controller
==============返回到模板页F12在页面打一个断点看一下,if判断条件是true,说明下一步的跳转是可以执行的======================
到此,MD5加密登录演示完成!
MD5加密--项目案例的更多相关文章
- Asp.Net Core 2.0 项目实战(7)MD5加密、AES&DES对称加解密
本文目录 1. 摘要 2. MD5加密封装 3. AES的加密.解密 4. DES加密/解密 5. 总结 1. 摘要 C#中常用的一些加密和解密方案,如:md5加密.RSA加密与解密和DES加密等, ...
- 【从业余项目中学习1】C# 实现XML存储用户名密码(MD5加密)
最近在写一个C#的项目,用户需求是实现Winform的多文档界面与Matlab算法程序之间的交互.做了一段时间发现,这既能利用业余时间,实战中也可学习一些技术,同时刚毕业也增加一份收入.所以后面会不断 ...
- 【jar】JDK将单个的java文件打包为jar包,并引用到项目中使用【MD5加密】
==================================================================================================== ...
- 记录新项目中遇到的技术及自己忘记的技术点【DES加密解密,MD5加密,字符串压缩、解压,字符串截取等操作】
一.DES加密.解密 #region DES加密解密 /// <summary> /// 进行DES加密 /// </summary> /// <param name=& ...
- JAVAEE——SSH项目实战05:用户注册、登陆校验拦截器、员工拜访客户功能和MD5加密
作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7170519.html 一.用户注册 显示错误信息到页面上的另一种方法: public ...
- 关于CryptoJS中md5加密以及aes加密的随笔
最近项目中用到了各种加密,其中就包括从没有接触过得aes加密,因此从网上各种查,官方的一种说法: 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学 ...
- Android数据加密之MD5加密
前言: 项目中无论是密码的存储或者说判断文件是否是同一文件,都会用到MD5算法,今天来总结一下MD5加密算法. 什么是MD5加密? MD5英文全称“Message-Digest Algorithm 5 ...
- java中使用MD5加密技术
在项目中经常会对一些信息进行加密,现在常用的信息加密技术有:MD5.RSA.DES等,今天主要说一下,md5加密,以及如何在java代码根据自己的业务需求使用md5. MD5简介: MD5即Messa ...
- iOS,一行代码进行RSA、DES 、AES、MD5加密、解密
本文为投稿文章,作者:Flying_Einstein(简书) 加密的Demo,欢迎下载 JAVA端的加密解密,读者可以看我同事的这篇文章:http://www.jianshu.com/p/98569e ...
随机推荐
- Golang reflect 反射
反射的规则如下: 从接口值到反射对象的反射 从反射对象到接口值的反射 为了修改反射对象,其值必须可设置 -------------------------------------------- ...
- 微信小程序 置顶/取消置顶
wxml <view wx:for="{{confirmlist}}" wx:for-item="confirm" wx:for-index=" ...
- 【转】JS实现继承的几种方式
既然要实现继承,那么首先我们得有一个父类,代码如下: // 定义一个动物类 function Animal (name) { // 属性 this.name = name || 'Animal'; / ...
- 谷歌浏览器安装POSTMAN
1.下载postman插件,可以自己到网上下载,也可以点击http://download.csdn.net/detail/u010246789/9528471 2.解压文件,在解压后的文件夹中找到.c ...
- 二进制包 vs. 源代码包
在ROS中, 我们可能经常会遇到缺少相关的ROS依赖的问题. 有些时候你编译或者运行一些ROS程序, 系统会提示找不到XXX功能包. 如果是缺少ROS的依赖, 通常可以用以下命令来安装: $ sudo ...
- PHP的Reflection反射机制
更多内容推荐微信公众号,欢迎关注: 原文地址: http://www.nowamagic.net/php/php_Reflection.php PHP5添加了一项新的功能:Reflection.这个功 ...
- python 爬虫 发送每天天气
#!/usr/bin/python# -*- coding: UTF-8 -*-import requests,bs4,smtplib,sysimport smtplib, sysfrom email ...
- CAN网要不要共地?
重要:CAN网要不要共地? 因为CAN传输采用差分传输的方式,即使不共地,部分情况下仍然能传输数据,但是本人以实际的经验告诉你们,一定要共地! 1. 不共地会引入共模干扰,轻则影响正常 ...
- Spring的简单应用与基本原理
一:重要概念理解 Spring很简单,一定不要想得太复杂,只是有些东西很拗口而已 1:IOC(控制反转) 概念:利用反射的原理将对象创建的权利交给了Spring,Spring在运行的时候根据配置文件( ...
- 【LeetCode445】 Add Two Numbers II★★
题目描述: 解题思路: 给定两个链表(代表两个非负数),数字的各位以正序存储,将两个代表数字的链表想加获得一个新的链表(代表两数之和). 如(7->2->4->3)(7243) + ...