java MD5加密的兩種方法總結(jié)

MD5加密,比如數(shù)據(jù)庫(kù)中密碼等敏感字段需要加密存儲(chǔ),核對(duì)密碼時(shí)先以同樣的方式對(duì)用戶輸入的密碼進(jìn)行加密,再與數(shù)據(jù)庫(kù)中存儲(chǔ)的密碼比較。

MD5加密有很多種實(shí)現(xiàn)方式,此處介紹2種。

1、使用JDK自帶MessageDigest
public class MD5Util {

public static String getMD5Str(String str) {
byte[] digest = null;
try {
MessageDigest md5 = MessageDigest.getInstance("md5");
digest = md5.digest(str.getBytes("utf-8"));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
//16是表示轉(zhuǎn)換為16進(jìn)制數(shù)
String md5Str = new BigInteger(1, digest).toString(16);
return md5Str;
}

}
2、使用Spring自帶的DigestUtils

上面試自己封裝,太麻煩,Spring已經(jīng)給我們封裝好了。

String md5Str = DigestUtils.md5DigestAsHex("原串".getBytes());

效果都是一樣的。

說(shuō)明
只使用md5加密是不行的,很容易被破解。常見(jiàn)的做法有:

先對(duì)原串進(jìn)行一些處理,比如先給它拼接一個(gè)字符串常量,再進(jìn)行md5加密。即使對(duì)方解密,也獲取不到原串。
使用多種加密算法。比如先用md5加密,再對(duì)加密的結(jié)果使用其它加密算法進(jìn)行加密。比如現(xiàn)使用md5加密,對(duì)加密的結(jié)果再次使用md5加密。
這2種方式方式經(jīng)常一起使用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容