java 文件md5+字符串md5 实现
2013-06-16 22:17
471 查看
import org.apache.commons.codec.binary.Hex; import org.apache.commons.codec.digest.DigestUtils; import org.apache.log4j.Logger; 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算法工具 */ public class MD5BigFileUtil { private final static Logger logger = Logger.getLogger(MD5BigFileUtil.class); static MessageDigest md = null; static { try { md = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException ne) { logger.error("NoSuchAlgorithmException: md5", ne); } } /** * 对一个文件求他的md5值 * @param f 要求md5值的文件 * @return md5串 */ public static String md5(File f) { FileInputStream fis = null; try { fis = new FileInputStream(f); //100KB each time byte[] buffer = new byte[102400]; int length; long loopCount = 0; while ((length = fis.read(buffer)) != -1) { md.update(buffer, 0, length); loopCount++; } logger.debug("read file to buffer loopCount:"+loopCount); return new String(Hex.encodeHex(md.digest())); } catch (FileNotFoundException e) { logger.error("md5 file " + f.getAbsolutePath() + " failed:" + e.getMessage()); return null; } catch (IOException e) { logger.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); } public static void main(String[] args) { long begin =System.currentTimeMillis(); System.out.println(md5(new File("G:/BT/PremierePro_6_LS7.7z"))); long end =System.currentTimeMillis(); System.out.println("time:"+((end-begin)/1000)+"s"); System.out.println(md5("hello world")); } }
相关文章推荐
- java 实现字符串以及文件的md5、sha计算完整代码
- java实现解析二进制文件(字符串、图片)
- Java利用MessageDigest获取字符串或文件MD5详解
- Java利用MessageDigest获取字符串或文件MD5详解
- Java字符串写入文件三种方式的实现
- Java实现——统计文件中字符串出现次数
- java实现linux中gzip压缩解压缩算法:byte[]字节数组,文件,字符串,数据流的压缩解压缩
- Java利用MessageDigest获取字符串或文件MD5详解
- Java实现——字符串分割以及复制目录下的所有文件
- 加密:Java利用MessageDigest获取字符串或文件MD5详解
- java实现解析二进制文件(字符串、图片)
- Java实现——字符串分割以及复制目录下的所有文件
- (java)MD5实现文件的加密解密
- java实现无符号数转换、字符串补齐、md5、uuid、随机数示例
- Java实现--替换文本文件中所有符合条件的字符串
- Java实现获取文件MD5
- java实现解析二进制文件(字符串、图片)
- c#大圣之路笔记——MD5实现字符串、文件加密
- JAVA实现MD5文件校验
- java实现解析二进制文件的方法(字符串、图片)