下面直接通过实例演示怎样使用 DigestUtils(消息摘要工具类)实现MD5加密操作。代码如下:
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.codec.digest.DigestUtils;
import java.io.ByteArrayInputStream;
import java.io.IOException;
/**
* Commons Codec Md5 的用法
*/
public class Md5Demo {
public static void main(String[] args) {
String val = "Hello World";
String result1 = DigestUtils.md5Hex(val);
System.out.println("md5Hex字符串参数:" + result1);
byte[] bytes = val.getBytes();
String result2 = DigestUtils.md5Hex(bytes);
System.out.println("md5Hex字节数组参数:" + result2);
byte[] result3 = DigestUtils.md5(val);
System.out.println("md5字符串参数:" + Hex.encodeHexString(result3));
byte[] result4 = DigestUtils.md5(bytes);
System.out.println("md5字节数组参数:" + Hex.encodeHexString(result4));
try {
byte[] result5 = DigestUtils.md5(new ByteArrayInputStream(bytes));
System.out.println("md5输入流参数:" + Hex.encodeHexString(result5));
} catch (IOException e) {
e.printStackTrace();
}
}
}DigestUtils工具类注意提供了如下两种md5方法。如下:
md5方法:该方法接收字符串、字节数组、输入流作为参数,全部返回字节数组,需要利用Hex类转换成十六进制;
md5Hex方法:该方法接收字符串、字节数组作为参数,返回十六进制结果,不需要手动使用Hex转换成十六进制。