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

來源:互聯網
上載者:User

標籤:

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

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.