java md5加密可以使用第三方的DigestUtils加密工具类,也可以使用原生的md5加密方法,如果是md5第三方加密的话,需要引入maven jar包,如下。
<!-- 加密解密 --> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>${commons-codec.version}</version> </dependency>
下面是写在main方法中的示例代码,md5加密方法非常简单,如下,也需要自己稍微改一下。
import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import org.apache.commons.codec.digest.DigestUtils; public class ArrayDemo { public static void main(String[] args) throws NoSuchAlgorithmException { String str = "hello world"; //java原生方法 MessageDigest md = MessageDigest.getInstance("MD5"); byte[] arr = md.digest(str.getBytes()); String md5Str = md5ToString(arr); System.out.println(md5Str); //第三方加密方法 byte[] md5 = DigestUtils.md5(str); String md5Str2 = md5ToString(md5); System.out.println(md5Str2); //第三方直接返回md5 16进制字符串的加密方法 String md5Str3 = DigestUtils.md5Hex(str.getBytes()); System.out.println(md5Str3); } //将md5数组转化为16进制字符串 public static String md5ToString(byte[] md5){ StringBuilder sb = new StringBuilder(); for (int i = 0; i < md5.length; i++) { int temp = md5[i] & 0Xff; String hexString = Integer.toHexString(temp); if (hexString.length() < 2) { sb.append("0").append(hexString); } else { sb.append(hexString); } } return sb.toString(); } }
原生的md5加密方法是java自带的,在java.security包中,而第三方加密方法在org.apache.commons.codec.digest包中,需要引入maven jar包。
上面的代码输出字符串结果都是一样的,如下。
5eb63bbbe01eeed093cb22bb8f5acdc3
5eb63bbbe01eeed093cb22bb8f5acdc3
5eb63bbbe01eeed093cb22bb8f5acdc3