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

