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加密登錄演示完成!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM