Java生成MD5加密字符串代碼實(shí)例
(1)一般使用的數(shù)據(jù)庫中都會保存用戶名和密碼,其中密碼不使用明碼保存。
有時(shí)候用MD5密碼,很多語言都提供了將字符串生成為MD5密碼的方法或函數(shù)。MD5的加密算法是公開的。
有時(shí)候也可以用自己的字符串加密算法,這種加密算法是只有自己知道的。
(2)破解MD5的過程就是先算好大量或者所有可能的字符串的MD5數(shù)值,之后進(jìn)行查詢就可以破解。雖然有些網(wǎng)站規(guī)定了密碼的位數(shù)在6~20位之間,但是要事先計(jì)算這么多是字符串并有效的組織存儲、查詢還是相當(dāng)麻煩,相當(dāng)慢的。
因?yàn)镸D5的位數(shù)是固定的,比如16,32,64,而字符串的組合與長度是無窮盡的,這就有沖突啦。但是如果知道了加密前字符串的長度是有固定范圍的,比如6~20,這個(gè)還是可以破解的。
但是,如果不知道加密前字符的長度那么這就是無窮盡啦。貌似現(xiàn)在還沒有人能夠破解吧。
MD5密碼破解網(wǎng)站 :可以百度搜索“MD5解密”
(3)下面給出了一個(gè)java生成給定字符串的MD5密碼的模塊程序。
import java.security.MessageDigest; public class Md5Test { public void toMD5(String plainText) { try { //生成實(shí)現(xiàn)指定摘要算法的 MessageDigest 對象。 MessageDigest md = MessageDigest.getInstance("MD5"); //使用指定的字節(jié)數(shù)組更新摘要。 md.update(plainText.getBytes()); //通過執(zhí)行諸如填充之類的最終操作完成哈希計(jì)算。 byte b[] = md.digest(); //生成具體的md5密碼到buf數(shù)組 int i; StringBuffer buf = new StringBuffer(""); for (int offset = 0; offset < b.length; offset++) { i = b[offset]; if (i < 0) i += 256; if (i < 16) buf.append("0"); buf.append(Integer.toHexString(i)); } System.out.println("32位: " + buf.toString());// 32位的加密 System.out.println("16位: " + buf.toString().substring(8, 24));// 16位的加密,其實(shí)就是32位加密后的截取 } catch (Exception e) { e.printStackTrace(); } } public static void main(String agrs[]) { new Md5Test().toMD5("LXD");//加密LXD } }
PS:這里再為大家提供2款MD5加密工具,感興趣的朋友可以參考一下:
MD5在線加密工具:
http://tools.jb51.net/password/CreateMD5Password
在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
相關(guān)文章
IDEA?服務(wù)器熱部署圖文詳解(On?Update?action/On?frame?deactivation)
這篇文章主要介紹了IDEA?服務(wù)器熱部署詳解(On?Update?action/On?frame?deactivation),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03SpringBoot根據(jù)各地區(qū)時(shí)間設(shè)置接口有效時(shí)間的實(shí)現(xiàn)方式
這篇文章給大家介紹了SpringBoot根據(jù)各地區(qū)時(shí)間設(shè)置接口有效時(shí)間的實(shí)現(xiàn)方式,文中通過代碼示例給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-01-01解決Eclipse Tomcat OutOfMemoryError:PermGen space的問題
今天小編就為大家分享一篇關(guān)于解決Eclipse Tomcat OutOfMemoryError:PermGen space的問題,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12詳解Java 自動(dòng)裝箱與拆箱的實(shí)現(xiàn)原理
本篇文章主要介紹了詳解Java 自動(dòng)裝箱與拆箱的實(shí)現(xiàn)原理,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04SpringMVC @GetMapping注解路徑?jīng)_突問題解決
MD5對密碼進(jìn)行加密存儲是常見的一種加密方式,本文主要介紹了Java雙重MD5加密實(shí)現(xiàn)安全登錄,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07