Java MD5 加密

Java

使用 Java 实现的一个工具类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.security.MessageDigest;

public class JavaMD5Util {
public static String md5(String str) {
MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(str.getBytes(StandardCharsets.UTF_8));
} catch (Exception e) {
e.printStackTrace();
}

byte[] byteArray = messageDigest.digest();
StringBuffer md5StrBuff = new StringBuffer();
for (int i = 0; i < byteArray.length; ++i) {
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) {
md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
} else {
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
}
}
return md5StrBuff.toString();
}

public static void main(String[] args) {
System.out.println(JavaMD5Util.md5("Hello"));
}
}

其他方法

  1. 使用 Apache commons 的 org.apache.commons.codec.digest.DigestUtils
  2. 使用 Spring提供的 org.springframework.util.DigestUtils
  3. 使用 Google Guava 的 com.google.common.io.Files.hash

参考资料

  1. Very slow to generate MD5 for large file using Java - Stack Overflow
  2. Fast MD5 Implementation in Java
  3. MessageDigest (Java Platform SE 8 )
  4. java MD5 - 简书
  5. MessageDigest简介 - xingle0917 - 博客园