java 實現(xiàn)MD5加密算法的簡單實例
更新時間:2017年09月03日 11:06:35 投稿:lqh
這篇文章主要介紹了java 實現(xiàn)MD5加密算法的簡單實例的相關資料,這里提供實例幫助大家應用這樣的加密算法,需要的朋友可以參考下
java 實現(xiàn)MD5加密算法的簡單實例
實現(xiàn)代碼:
import java.security.NoSuchAlgorithmException;
public class MD5HashUtil
{
private MessageDigest md = null;
private static MD5HashUtil md5 = null;
private static final char[] hexChars ={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
/**
* Constructor is private so you must use the getInstance method
*/
private MD5HashUtil() throws NoSuchAlgorithmException
{
md = MessageDigest.getInstance("MD5");
}
/**
* This returns the singleton instance
*/
public static MD5HashUtil getInstance()throws NoSuchAlgorithmException
{
if (md5 == null)
{
md5 = new MD5HashUtil();
}
return (md5);
}
public static String hashCode(String dataToHash) throws NoSuchAlgorithmException{
return getInstance().hashData(dataToHash.getBytes());
}
public static String hashCode(byte[] dataToHash) throws NoSuchAlgorithmException{
return getInstance().hashData(dataToHash);
}
public String hashData(byte[] dataToHash) {
return hexStringFromBytes((calculateHash(dataToHash))).toLowerCase();
}
private byte[] calculateHash(byte[] dataToHash)
{
md.update(dataToHash, 0, dataToHash.length);
return (md.digest());
}
public String hexStringFromBytes(byte[] b)
{
String hex = "";
int msb;
int lsb = 0;
int i;
// MSB maps to idx 0
for (i = 0; i < b.length; i++)
{
msb = ((int)b[i] & 0x000000FF) / 16;
lsb = ((int)b[i] & 0x000000FF) % 16;
hex = hex + hexChars[msb] + hexChars[lsb];
}
return(hex);
}
public static void main(String args[]) throws NoSuchAlgorithmException
{
String string = "my name is zhangli";
System.out.println(string);
System.out.println(hashCode(string));
}
}
如上代碼為java語言實現(xiàn)md5加密算法,輸出為加密后的密文!
通常將加密后的密文保存在數(shù)據庫中,如果需要比較只比較他們的用md5加密過后的密文。
同時,md5加密算法是不可逆的,破解的難度很高。
以上就是java MD5加密算法的實例詳解,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
Spring基于ProxyFactoryBean創(chuàng)建AOP代理
這篇文章主要介紹了Spring基于ProxyFactoryBean創(chuàng)建AOP代理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-10-10
Intellij IDEA基于Springboot的遠程調試(圖文)
這篇文章主要介紹了Intellij IDEA基于Springboot的遠程調試(圖文),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-10-10
Spring Security實現(xiàn)自動登陸功能示例
自動登錄在很多網站和APP上都能用的到,解決了用戶每次輸入賬號密碼的麻煩。本文就使用Spring Security實現(xiàn)自動登陸功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11
Java實現(xiàn)的時間戳與date對象相互轉換功能示例
這篇文章主要介紹了Java實現(xiàn)的時間戳與date對象相互轉換功能,結合具體實例形式分析了java日期與時間戳類型的表示與轉換相關操作技巧,需要的朋友可以參考下2017-06-06

