md5解密java的簡單介紹

本文目錄一覽:

Java MD5如何解密?

MD5是單向加密的,不管何種數據進行MD5加密都會得到固定長度的字元串,

MD5一般用戶文件完整性的校驗,也有用來做密碼加密的。

想要破解MD5,因其本身的演算法不可逆,故只能使用窮舉法,也就是不斷拼字元串加密和已知的MD5字元串進行比對,這是一個相當大的工程,需要龐大的數據基礎。

java 如何採用md5解密

package endecrypt;

import java.io.UnsupportedEncodingException;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

/**

* 採用MD5加密解密

* @author tfq

* @datetime 2011-10-13

*/

public class MD5Util {

/***

* MD5加碼 生成32位md5碼

*/

public static String string2MD5(String inStr){

MessageDigest md5 = null;

try{

md5 = MessageDigest.getInstance(“MD5”);

}catch (Exception e){

System.out.println(e.toString());

e.printStackTrace();

return “”;

}

char[] charArray = inStr.toCharArray();

byte[] byteArray = new byte[charArray.length];

for (int i = 0; i charArray.length; i++)

byteArray[i] = (byte) charArray[i];

byte[] md5Bytes = md5.digest(byteArray);

StringBuffer hexValue = new StringBuffer();

for (int i = 0; i md5Bytes.length; i++){

int val = ((int) md5Bytes[i]) 0xff;

if (val 16)

hexValue.append(“0”);

hexValue.append(Integer.toHexString(val));

}

return hexValue.toString();

}

/**

* 加密解密演算法 執行一次加密,兩次解密

*/

public static String convertMD5(String inStr){

char[] a = inStr.toCharArray();

for (int i = 0; i a.length; i++){

a[i] = (char) (a[i] ^ ‘t’);

}

String s = new String(a);

return s;

}

// 測試主函數

public static void main(String args[]) {

String s = new String(“tangfuqiang”);

System.out.println(“原始:” + s);

System.out.println(“MD5後:” + string2MD5(s));

System.out.println(“加密的:” + convertMD5(s));

System.out.println(“解密的:” + convertMD5(convertMD5(s)));

}

}

如何在java中實現md5加密和解密

package endecrypt;

02.

03.import java.io.UnsupportedEncodingException;

04.import java.security.MessageDigest;

05.import java.security.NoSuchAlgorithmException;

06.

07./**

08. * 採用MD5加密解密

09. * @author tfq

10. * @datetime 2011-10-13

11. */

12.public class MD5Util {

13.

14. /***

15. * MD5加碼 生成32位md5碼

16. */

17. public static String string2MD5(String inStr){

18. MessageDigest md5 = null;

19. try{

20. md5 = MessageDigest.getInstance(“MD5”);

21. }catch (Exception e){

22. System.out.println(e.toString());

23. e.printStackTrace();

24. return “”;

25. }

26. char[] charArray = inStr.toCharArray();

27. byte[] byteArray = new byte[charArray.length];

28.

29. for (int i = 0; i charArray.length; i++)

30. byteArray[i] = (byte) charArray[i];

31. byte[] md5Bytes = md5.digest(byteArray);

32. StringBuffer hexValue = new StringBuffer();

33. for (int i = 0; i md5Bytes.length; i++){

34. int val = ((int) md5Bytes[i]) 0xff;

35. if (val 16)

36. hexValue.append(“0”);

37. hexValue.append(Integer.toHexString(val));

38. }

39. return hexValue.toString();

40.

41. }

42.

43. /**

44. * 加密解密演算法 執行一次加密,兩次解密

45. */

46. public static String convertMD5(String inStr){

47.

48. char[] a = inStr.toCharArray();

49. for (int i = 0; i a.length; i++){

50. a[i] = (char) (a[i] ^ ‘t’);

51. }

52. String s = new String(a);

53. return s;

54.

55. }

java中,從資料庫取出來的密碼加密了,用代碼怎麼實現md5解密

md5是不可逆的,只不過用的人多了,就有人創建了一個md5密碼錶,應該就是傳說中的彩虹表,蜜要是有這個表就可以了

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/159570.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-20 00:14
下一篇 2024-11-20 00:14

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29

發表回復

登錄後才能評論