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

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

(一).整體思路java

(二).部分截圖web

(三).部分代碼算法

 

(一).整體思路:瀏覽器

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

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

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

 

(二).部分截圖:code

 

 

(三).部分代碼:htm

  代碼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轉碼解碼

相關文章
相關標籤/搜索