您的位置:首页 > 其它

大文件计算MD5值

2014-05-09 11:12 281 查看
http://www.oschina.net/code/snippet_110182_2469
import org.apache.commons.codec.binary.Hex;import org.apache.commons.codec.digest.DigestUtils;import org.apache.commons.logging.LogFactory;import org.apache.commons.logging.Log;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/*** md5算法工具* @since 2009-8-7 14:46:27*/public class MD5Util {private final static Log log = LogFactory.getLog(MD5Util.class);static MessageDigest md = null;static {try {md = MessageDigest.getInstance("MD5");} catch (NoSuchAlgorithmException ne) {log.error("NoSuchAlgorithmException: md5", ne);}}/*** 对一个文件求他的md5值* @param f 要求md5值的文件* @return md5串*/public static String md5(File f) {FileInputStream fis = null;try {fis = new FileInputStream(f);byte[] buffer = new byte[8192];int length;while ((length = fis.read(buffer)) != -1) {md.update(buffer, 0, length);}return new String(Hex.encodeHex(md.digest()));} catch (FileNotFoundException e) {log.error("md5 file " + f.getAbsolutePath() + " failed:" + e.getMessage());return null;} catch (IOException e) {log.error("md5 file " + f.getAbsolutePath() + " failed:" + e.getMessage());return null;} finally {try {if (fis != null) fis.close();} catch (IOException e) {e.printStackTrace();}}}/*** 求一个字符串的md5值* @param target 字符串* @return md5 value*/public static String md5(String target) {return DigestUtils.md5Hex(target);}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: