本文目录一览:
- 1、如何在java中实现md5加密和解密
- 2、MD5算法求助 用JAVA实现
- 3、java 如何采用md5解密
- 4、Java MD5如何解密?
- 5、java中,从数据库取出来的密码加密了,用代码怎么实现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. }
MD5算法求助 用JAVA实现
package JavaBean.util;
import java.security.MessageDigest;
public class MD5Encrypt {
public MD5Encrypt() {
}
private final static String[] hexDigits = {
"0", "1", "2", "3", "4", "5", "6", "7",
"8", "9", "a", "b", "c", "d", "e", "f"};
/**
* 转换字节数组为16进制字串
* @param b 字节数组
* @return 16进制字串
*/
public static String byteArrayToString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i b.length; i++) {
//resultSb.append(byteToHexString(b[i]));//若使用本函数转换则可得到加密结果的16进制表示,即数字字母混合的形式
resultSb.append(byteToNumString(b[i]));//使用本函数则返回加密结果的10进制数字字串,即全数字形式
}
return resultSb.toString();
}
private static String byteToNumString(byte b) {
int _b = b;
if (_b 0) {
_b = 256 + _b;
}
return String.valueOf(_b);
}
private static String byteToHexString(byte b) {
int n = b;
if (n 0) {
n = 256 + n;
}
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}
public static String MD5Encode(String origin) {
String resultString = null;
try {
resultString = new String(origin);
MessageDigest md = MessageDigest.getInstance("MD5");
resultString =
byteArrayToString(md.digest(resultString.getBytes()));
}
catch (Exception ex) {
}
return resultString;
}
public static void main(String[] args) {
MD5Encrypt md5encrypt = new MD5Encrypt();
System.out.println(MD5Encode("10000000"));
}
}
完整的类.
调用为: md5.MD5Encode("hello");
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加密都会得到固定长度的字符串,
MD5一般用户文件完整性的校验,也有用来做密码加密的。
想要破解MD5,因其本身的算法不可逆,故只能使用穷举法,也就是不断拼字符串加密和已知的MD5字符串进行比对,这是一个相当大的工程,需要庞大的数据基础。
java中,从数据库取出来的密码加密了,用代码怎么实现md5解密
md5是不可逆的,只不过用的人多了,就有人创建了一个md5密码表,应该就是传说中的彩虹表,蜜要是有这个表就可以了