前言
在我們開發是要考慮這個功能,當用戶忘記密碼的情況下,我們需要動態的發給他一個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的加密! !
結束語
以上就是關於在Java後端實現MD5加密方法的全部內容,希望這篇文章對大家學習Java能有所幫助,如果有問題可以進行留言交流,謝謝大家對武林網的支持。