java md5加密解密_JAVA实现MD5加密解密
时间: 2023-07-04 19:09:09 浏览: 44
Java 中可以使用 java.security.MessageDigest 类来实现 MD5 加密和解密。下面是一个简单的示例代码:
```java
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Util {
/**
* 将字符串进行 MD5 加密
*
* @param str 要加密的字符串
* @return 加密后的字符串
*/
public static String encrypt(String str) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
byte[] bytes = md.digest();
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
String hex = Integer.toHexString(b & 0xff);
if (hex.length() == 1) {
sb.append("0");
}
sb.append(hex);
}
return sb.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
}
/**
* 校验加密后的字符串和原始字符串是否一致
*
* @param encrypted 加密后的字符串
* @param original 原始字符串
* @return 是否一致
*/
public static boolean verify(String encrypted, String original) {
return encrypt(original).equals(encrypted);
}
}
```
示例代码中,encrypt() 方法用于将字符串进行 MD5 加密,verify() 方法用于校验加密后的字符串和原始字符串是否一致。
示例代码中使用 MessageDigest 类来实现 MD5 加密。首先获取一个 MessageDigest 实例,然后调用 update() 方法将要加密的字符串传入,最后调用 digest() 方法获取加密后的字节数组。最后将字节数组转换为十六进制字符串即可。
使用示例:
```java
public static void main(String[] args) {
String str = "Hello World!";
String encrypted = MD5Util.encrypt(str);
System.out.println("加密后:" + encrypted);
System.out.println("校验结果:" + MD5Util.verify(encrypted, str));
}
```
输出:
```
加密后:b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
校验结果:true
```
可以看到,加密后的字符串和校验结果都是正确的。