MD5加密--项目案例

Posted yxllovetm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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加密--项目案例的主要内容,如果未能解决你的问题,请参考以下文章

Java中进行Md5加密

MD5加密

Android MD5加密RSA加密

laravle5.4修改成MD5验证加密方式

《Java知识应用》Java加密方式(MD5)详解

spring项目中使用MD5加密方式