java后端制作MD5加密


由於一次業務的需要,我制作了一次密碼的修改子業務。

當用戶忘記密碼的情況下,我需要動態的發給他一個6位的隨機密碼,通過即時通,短信,微信等。並同時修改數據庫中的原密碼為這6位的隨機密碼。讓用戶再去修改密碼。

同時在數據庫中的密碼必須存為密文,於是需要使用到MD5加密。生成的6位隨機密碼需要保密,不能在前台處理,只能放在后端。於是我選擇放在了控制層中

//傳入任何需要加密的文本進行加密
public static String getMd5(String string) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(string.getBytes());
            byte hash[] = md.digest();
            StringBuffer sb = new StringBuffer();
            int i = 0;
            for (int offset = 0; offset < hash.length; offset++) {
                i = hash[offset];
                if (i < 0) {
                    i += 256;
                }
                if (i < 16) {
                    sb.append("0");
                }
                sb.append(Integer.toHexString(i));
            }

            return sb.toString();
        }
        catch (NoSuchAlgorithmException e) {
            throw new RuntimeException(e);
        }
    }

此處使用的是32位的加密,16位與32位的區別是16位取的是32位中間的16位。

String PASSWORD_ = String.valueOf((int) (Math.random() * 1000000));

            if (empService.updateEmpPassword(EMP_ID_, BaseUtils.getMd5(PASSWORD_), operator) == 0) {
                throw new RuntimeException("隨機密碼生成失敗!");
            }
            String xele = "<SendMessage><AM_Name>" + EMP_CODE_ + "</AM_Name><PhoneNum></PhoneNum><UserId></UserId><MessageTxt>您的公文管理系統新密碼是:" + PASSWORD_ + "</MessageTxt><SystemName>公文管理系統</SystemName><Type>即時通</Type><Access></Access><Email></Email><IsBack></IsBack><IsEncrypt></IsEncrypt><ISPriority></ISPriority><Ohter1></Ohter1><Ohter2></Ohter2></SendMessage><br />";

然后調用即時通預留接口

instanceMsgService.AMToMessIFCheck(xele, null, operator);

主要看java后端怎么去做MD5的加密!!

 

歡迎大家閱覽,多多評論其中的不足!!

為工程師之路添磚加瓦!!


免責聲明!

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



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