您的位置:

java对文件md5解密的简单介绍

本文目录一览:

Java MD5如何解密?

MD5是单向加密的,不管何种数据进行MD5加密都会得到固定长度的字符串,

MD5一般用户文件完整性的校验,也有用来做密码加密的。

想要破解MD5,因其本身的算法不可逆,故只能使用穷举法,也就是不断拼字符串加密和已知的MD5字符串进行比对,这是一个相当大的工程,需要庞大的数据基础。

java中MD5 能不能解,如果能解那么怎么解

MD5只不能解密的...它是一个不可逆的过程...

网站上提供MD5解密查询只是把加密的数据保存到数据库进行查询得到的结果...

如何在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解密

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解密

md5是不可逆的,只不过用的人多了,就有人创建了一个md5密码表,应该就是传说中的彩虹表,蜜要是有这个表就可以了