java web實現 忘記密碼(找回密碼)功能及代碼


 java web實現 忘記密碼(找回密碼)功能及代碼

(一).總體思路

(二).部分截圖

(三).部分代碼

 

(一).總體思路:

  1.在 找回密碼頁面 錄入 姓名、郵箱和驗證碼,錄入后點擊【提交】按鈕,此時發送一封郵件,郵件中帶有加密后的鏈接。

  2.點開 郵件中鏈接,解密並判斷鏈接是否有效,驗證通過后 到 修改密碼頁面。

  3.在修改頁面中 錄入新密碼, 點擊【修改按鈕】修改密碼,操作完成。

 

(二).部分截圖:

 

 

(三).部分代碼:

  代碼1(對應上面總體思路1):此處關鍵是 生成加密鏈接,而且此鏈接 參數需要在瀏覽器中get方式傳遞,不能支持“+”,"/"等特殊字符。

    
                //添加 過期時間,24小時后鏈接失效
                long endTimes = System.currentTimeMillis()+1*24*3600*1000;
                String para = personname+";"+email+";"+endTimes;
                //先加密,再url轉碼,順序不能修改 modify by lifq 20150317
                String encode = UrlUtil.getURLEncoderString(DesUtil.encrypt(para));
                content = EmailUtil.replace(content, "{EMAIL_SETPWD_ADD2}", "http://localhost:8080/test/toSetPayrollPwd2.do?vc="+encode);

 

  代碼2(對應上面總體思路2):此處關鍵是  獲取參數vc並解密。

/**
     * 找回 密碼 第二步
     *
     * @return String
     * @author lifq
     * @date 2015-3-17 上午10:24:09
     */
    public String toSetPayrollPwd2(){
        String vc = context.getParameter("vc");
        if(null!=vc){
            try {
                //此處直接 des解碼
                String decode = DesUtil.decrypt(vc);
                List list = EmailUtil.parseContent(decode, ";");
                if(null!=list && list.size()>0){
                    String personname = (String)list.get(0);
                    String email = (String)list.get(1);
                    long entimes = Long.parseLong((String)list.get(2));
                    long curtime = System.currentTimeMillis();
                    if(entimes<=curtime){
                        context.setRequestAttribute("errorMsg", "當前鏈接已失效,請重新 后去重置密碼鏈接!");
                    }else{
                        context.setRequestAttribute("personname", personname);
                        context.setRequestAttribute("email", email);
                        context.setRequestAttribute("vc", UrlUtil.getURLEncoderString(vc));
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
                context.setRequestAttribute("errorMsg", "鏈接無效!");
            }
        }
        return RETURN_SUCCESS;
    }

 

上述部分涉及到URL加密解密的util類 和 DES加密、解密的util類,在之前文章中有代碼:

1.java 實現 DES加密 解密算法

2.java實現url轉碼解碼

 


免責聲明!

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



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