From 55bc4dd3ad9850a66f11253f06717632209b7242 Mon Sep 17 00:00:00 2001 From: thinkgem Date: Fri, 17 Aug 2018 23:11:17 +0800 Subject: [PATCH] =?UTF-8?q?Md5Utils=E5=A2=9E=E5=8A=A0=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=96=87=E4=BB=B6MD5=E5=80=BC=EF=BC=8C=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=96=87=E4=BB=B6=E6=8C=87=E5=AE=9A=E5=89=8D?= =?UTF-8?q?=E9=83=A8=E5=88=86=E7=9A=84MD5=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jeesite/common/codec/Md5Utils.java | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/com/jeesite/common/codec/Md5Utils.java b/common/src/main/java/com/jeesite/common/codec/Md5Utils.java index 6cdd5b65..9a03273e 100644 --- a/common/src/main/java/com/jeesite/common/codec/Md5Utils.java +++ b/common/src/main/java/com/jeesite/common/codec/Md5Utils.java @@ -3,12 +3,16 @@ */ package com.jeesite.common.codec; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; +import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; +import com.jeesite.common.io.IOUtils; + /** * MD5不可逆加密工具类 * @author ThinkGem @@ -17,7 +21,6 @@ public class Md5Utils { private static final String MD5 = "MD5"; private static final String DEFAULT_ENCODING = "UTF-8"; - /** * 对输入字符串进行md5散列. @@ -63,5 +66,36 @@ public class Md5Utils { public static byte[] md5(InputStream input) throws IOException { return DigestUtils.digest(input, MD5); } + + /** + * 获取文件的MD5值 + */ + public static String md5File(File file) { + return md5File(file, -1); + } + + /** + * 获取文件的MD5值,支持获取文件部分的MD5值 + */ + public static String md5File(File file, int size) { + if (file != null && file.exists()){ + InputStream in = null; + try { + byte[] bytes = null; + in = FileUtils.openInputStream(file); + if (size != -1 && file.length() >= size){ + bytes = IOUtils.toByteArray(in, size); + }else{ + bytes = IOUtils.toByteArray(in); + } + return EncodeUtils.encodeHex(md5(bytes)); + } catch (IOException e) { + return StringUtils.EMPTY; + } finally { + IOUtils.closeQuietly(in); + } + } + return StringUtils.EMPTY; + } }