java md5 加解密
时间: 2023-08-08 21:10:44 浏览: 88
Java提供了对MD5加密算法的支持。下面是一个简单的Java代码示例,演示如何使用Java进行MD5加密和解密。
## MD5加密
```java
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Utils {
public static String encode(String origin) {
String resultString = null;
try {
resultString = new String(origin);
MessageDigest md = MessageDigest.getInstance("MD5");
resultString = byteArrayToHexString(md.digest(resultString.getBytes()));
} catch (Exception ex) {
ex.printStackTrace();
}
return resultString;
}
private static String byteArrayToHexString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
resultSb.append(byteToHexString(b[i]));
}
return resultSb.toString();
}
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];
}
private static final String[] hexDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
}
```
使用示例:
```java
String originString = "hello";
String encodedString = MD5Utils.encode(originString);
System.out.println("MD5 encoded string is: " + encodedString);
```
## MD5解密
MD5是一种不可逆的加密算法,因此不能直接解密。但是,可以对给定的字符串进行MD5加密,然后将结果与已知的MD5值进行比较,以查看它们是否相同。如果相同,则可以认为已知的MD5值是原始字符串的MD5值。
例如,假设我们已知字符串"hello"的MD5值为"5d41402abc4b2a76b9719d911017c592",那么可以使用以下代码将另一个字符串进行MD5加密,并将结果与已知的MD5值进行比较:
```java
String originString = "world";
String encodedString = MD5Utils.encode(originString);
if (encodedString.equals("5d41402abc4b2a76b9719d911017c592")) {
System.out.println("MD5 decoded string is: " + originString);
} else {
System.out.println("MD5 value does not match.");
}
```
阅读全文