在项目中最尝使用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加密登录演示完成!
原文地址:https://www.cnblogs.com/yxllovetm/p/10357584.html
时间: 2024-10-07 16:43:14