码迷,mamicode.com
首页 > 其他好文 > 详细

MD5加密--项目案例

时间:2019-02-09 16:29:43      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:sel   ||   delete   param   and   用户登录   obj   height   ping   

在项目中最尝使用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加密--项目案例

标签:sel   ||   delete   param   and   用户登录   obj   height   ping   

原文地址:https://www.cnblogs.com/yxllovetm/p/10357584.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!