md5加密算法java
时间: 2023-05-25 21:04:40 浏览: 83
MD5加密算法是一种哈希算法,用于将任意长度的数据转换成固定长度(128位)的哈希值,常用于确保数据的完整性以及数字签名等场合。以下是在Java中使用MD5加密算法的示例代码:
```java
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Encrypt {
public static String encrypt(String str) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] bytes = md.digest(str.getBytes());
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
String hex = Integer.toHexString(0xff & b);
if (hex.length() == 1)
sb.append('0');
sb.append(hex);
}
return sb.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
String str1 = "Hello world!";
String str2 = "Hello world?";
String md5Str1 = encrypt(str1); // 计算字符串 str1 的 MD5 值
String md5Str2 = encrypt(str2); // 计算字符串 str2 的 MD5 值
System.out.println(md5Str1); // 输出:b94d27b9934d3e08a52e52d7da7dabf6
System.out.println(md5Str2); // 输出:84482e85fc4d4dc3b3ab1415fb5c1eea
}
}
```
在上面的代码示例中,我们定义了一个名为`encrypt`的静态方法,用于将给定的字符串进行MD5加密,并返回结果的十六进制字符串。该方法首先使用`MessageDigest.getInstance("MD5")`方法获取一个MD5加密实例,然后将输入字符串转换成字节数组,并通过`md.digest(bytes)`方法计算出MD5哈希值。最后,我们将哈希值转换成十六进制字符串并返回。
在`main`方法中,我们使用`encrypt`方法分别计算了两个字符串的MD5哈希值,并输出结果。可以看到,对于不同的输入字符串,它们的MD5哈希值是不同的。