import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* @author joymufeng
*/
public class Md5 {
private static MessageDigest digester;
static {
try {
digester = MessageDigest.getInstance("MD5");
}catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
/**
* 將任意的字符串進行md5加密,并返回加密后的十六進制字符串。
* 需要注意,MessageDigest是非線程安全的,所以需要使用synchronized同步。
* @param str 待加密字符串
* @return 返回md5加密后的十六進制字符串
*/
public static String encrypt(String str) {
if (digester == null || str == null || str.length() == 0) {
return null;
}
synchronized (digester){
try {
digester.update(str.getBytes("UTF-8"));
String s1 = new BigInteger(1, digester.digest()).toString(16);
//補齊BigInteger省略的前置0
return new String(new char[32 - s1.length()]).replace("\0", "0") + s1;
} catch (Exception e) {
//一般不會有異常拋出, 該死的Java受檢異常,導(dǎo)致丑陋的代碼
}
}
return null;
}
}
Java生成十六進制的MD5加密字符串
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
- 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 直接上代碼 -(NSString*)twoConvertSixteen:(NSString*)string{ NS...
- 解決問題@"FE010000000429C6"轉(zhuǎn)換為<FE010000 000429C6> ; 先初始化一個可變D...