Java后端實(shí)現(xiàn)MD5加密的方法
前言
在我們開發(fā)是要考慮這個(gè)功能,當(dāng)用戶忘記密碼的情況下,我們需要?jiǎng)討B(tài)的發(fā)給他一個(gè)6位的隨機(jī)密碼,通過即時(shí)通,短信,微信等。并同時(shí)修改數(shù)據(jù)庫中的原密碼為這6位的隨機(jī)密碼。讓用戶再去修改密碼。
同時(shí)在數(shù)據(jù)庫中的密碼必須存為密文,于是需要使用到MD5加密。生成的6位隨機(jī)密碼需要保密,不能在前臺處理,只能放在后端。于是我選擇放在了控制層中
示例代碼
//傳入任何需要加密的文本進(jìn)行加密
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位的區(qū)別是16位取的是32位中間的16位。
String PASSWORD_ = String.valueOf((int) (Math.random * 1000000));
if (empService.updateEmpPassword(EMP_ID_, BaseUtils.getMd5(PASSWORD_), operator) == 0) {
throw new RuntimeException("隨機(jī)密碼生成失??!");
}
String xele = "<SendMessage><AM_Name>" + EMP_CODE_ + "</AM_Name><PhoneNum></PhoneNum><UserId></UserId><MessageTxt>您的公文管理系統(tǒng)新密碼是:" + PASSWORD_ + "</MessageTxt><SystemName>公文管理系統(tǒng)</SystemName><Type>即時(shí)通</Type><Access></Access><Email></Email><IsBack></IsBack><IsEncrypt></IsEncrypt><ISPriority></ISPriority><Ohter1></Ohter1><Ohter2></Ohter2></SendMessage><br />";
然后調(diào)用即時(shí)通預(yù)留接口
instanceMsgService.AMToMessIFCheck(xele, null, operator);
注意:主要看java后端怎么去做MD5的加密!!
結(jié)束語
以上就是關(guān)于在Java后端實(shí)現(xiàn)MD5加密方法的全部內(nèi)容,希望這篇文章對大家學(xué)習(xí)Java能有所幫助,如果有問題可以進(jìn)行留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
關(guān)于SpringBoot+Mybatis報(bào)MapperScan.factoryBean()問題
解決SpringBoot+Mybatis中的MapperScan.factoryBean()問題,讓你的項(xiàng)目運(yùn)行更順暢!本指南將帶你一步步解決這個(gè)問題,讓你的開發(fā)過程更加高效,不要錯(cuò)過這個(gè)實(shí)用指南,快來一探究竟吧!2024-02-02
如何使用Spring?Boot設(shè)置上傳文件大小限制
上傳文件是互聯(lián)網(wǎng)中常應(yīng)用的場景之一,最典型的情況就是上傳頭像等,下面這篇文章主要給大家介紹了關(guān)于如何使用Spring?Boot設(shè)置上傳文件大小限制的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
java根據(jù)網(wǎng)絡(luò)地址保存圖片的方法
這篇文章主要為大家詳細(xì)介紹了java根據(jù)網(wǎng)絡(luò)地址保存圖片的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
詳解Java如何實(shí)現(xiàn)一個(gè)像String一樣不可變的類
說到?String?大家都知道?String?是一個(gè)不可變的類;雖然用的很多,那不知道小伙伴們有沒有想過怎么樣創(chuàng)建一個(gè)自己的不可變的類呢?這篇文章就帶大家來實(shí)踐一下,創(chuàng)建一個(gè)自己的不可變的類2022-11-11
教你安裝eclipse2021并配置內(nèi)網(wǎng)maven中心倉庫的圖文詳解
本文能通過圖文并茂的形式給大家介紹安裝eclipse2021并配置內(nèi)網(wǎng)maven中心倉庫的相關(guān)知識,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-09-09
Mybatis批量插入Oracle數(shù)據(jù)的方法實(shí)例
在開發(fā)中或多或少都會(huì)遇到數(shù)據(jù)批量插入的功能,最近我在做項(xiàng)目的過程中就遇到了這樣一個(gè)問題,下面這篇文章主要給大家介紹了關(guān)于Mybatis批量插入Oracle數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-01-01
Java淺析代碼塊與構(gòu)造塊及靜態(tài)塊三者之間的關(guān)系
所謂代碼塊是指用"{}"括起來的一段代碼,根據(jù)其位置和聲明的不同,可以分為普通代碼塊、構(gòu)造塊、靜態(tài)塊、和同步代碼塊。如果在代碼塊前加上synchronized關(guān)鍵字,則此代碼塊就成為同步代碼塊2022-07-07

