文档章节

java获取文件的MD5值

别寒
 别寒
发布于 2014/08/26 15:04
字数 180
阅读 186
收藏 0

package com.sichang.util;


import java.io.File;

import java.io.FileInputStream;

import java.math.BigInteger;

import java.security.MessageDigest;

import java.util.HashMap;

import java.util.Map;


public class FileDigest {

  /**

   * 获取单个文件的MD5值!

   * @param  file

   * @return

   */

  public static String getFileMD5(File file) {

    if (!file.isFile()){

      return null;

    }

    MessageDigest digest = null;

    FileInputStream in=null;

    byte buffer[] = new byte[1024];

    int len;

    try {

      digest = MessageDigest.getInstance("MD5");

      in = new FileInputStream(file);

      while ((len = in.read(buffer, 0, 1024)) != -1) {

        digest.update(buffer, 0, len);

      }

      in.close();

    } catch (Exception e) {

      e.printStackTrace();

      return null;

    }

    BigInteger bigInt = new BigInteger(1, digest.digest());

    return bigInt.toString(16);

  }

  

  /**

   * 获取文件夹中文件的MD5值

   * @param  file

   * @param  listChild ;true递归子目录中的文件

   * @return

   */

  public static Map<String, String> getDirMD5(File file,boolean listChild) {

    if(!file.isDirectory()){

      return null;

    }

    //<filepath,md5>

    Map<String, String> map=new HashMap<String, String>();

    String md5;

    File files[]=file.listFiles();

    for(int i=0;i<files.length;i++){

      File f=files[i];

      if(f.isDirectory()&&listChild){

        map.putAll(getDirMD5(f, listChild));

      } else {

        md5=getFileMD5(f);

        if(md5!=null){

          map.put(f.getPath(), md5);

        }

      }

    }

    return map;

  }


}


© 著作权归作者所有

别寒
粉丝 30
博文 273
码字总数 155300
作品 0
永州
程序员
私信 提问
java 计算文件MD5值 大文件

MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性。用术语讲,MD5是一种消息摘要算法(Message Digest Algorithm)。另外还有一种常用的消息摘要算法SHA1。如果想了解这些的话,可...

laigous
2013/01/31
8.5K
3
maven私服nexus之校验和(checksums)

maven是开源的项目构建工具。 nexus可以用来搭建maven私服。 checksum(校验和):用于校验数据的完整性和准确性。 maven nexus中可以查看构件的Checksums:SHA1 checksum和MD5 checksum。 ...

donhui
2014/10/10
2.7K
0
轻量级 Java 框架 - JOxygen

JOxygen 轻量级Java框架 介绍 一个轻量级Java框架 oxygen-core 核心部分 基于cglib的aop实现 提供缓存管理和基于注解的缓存,内置LocalCache和Ehcache实现,可扩展 配置管理,支持${attrs.k...

justlive1
2018/11/13
1K
0
开源海报生成器 2.0,功能更强大,速度更快

poster-generater 海报生成器. 只需要一个简单的 json 配置即可生成你需要的海报... 点击 在线测试 说明 此项目诞生有一段时间了,我本人也一直在使用这个程序,从一开始的 golang 版本,到现...

桥边红药stack
04/26
3.1K
2
关于php MD5加密 与java MD5 加密结果不一致的问题

问题说明:今天在做java接口的时候,遇到一个麻烦问题,浪费我半个下午,也就是MD5加密问题,用户信息是由一个微博系统拿到的,这个微博系统是php开发的,密码使用的是php的MD5 加密方式。与...

java_T
2012/12/18
9.1K
7

没有更多内容

加载失败,请刷新页面

加载更多

秒杀系统思路

业务分析 技术挑战 请求响应要快:无论成功失败,需要尽快返回给用户 架构设计   前端:静态化   站点层:限制请求数   服务层:乐观锁写缓存   数据库CAP:读写高可用,一致性,扩容...

雷开你的门
13分钟前
7
0
最全的教育行业大数据解决方案,个个针对痛点

大数据的悄然兴起也带动了教育行业的革新,移动教育、云课堂等的出现,使得教育行业再次成为了可以中长期保持高景气的行业。然而,初涉数据领域的教育行业同时也面临着相当大的难题,还需要更...

朕想上头条
17分钟前
5
0
预约模块设计分析

1.预约功能描述: 预约是小程序中常见的一种商品管理系统,商家可根据商品或服务的特性,灵活设置预约细节,为用户提供线上预约服务,如场地预约,商品预定等,实现高效经营。 预约场景: ...

鱼煎
21分钟前
4
0
阿里云日志服务构建网站实时分析大盘实战

场景分析 挖掘数据价值是当前企业级网站共同面临的问题。买买网是一个电商平台网站,每天拥有大量的用户访问和购买记录。为了引导用户直接消费,提升购买率和转化率,不同的用户类别需要推荐...

阿里云官方博客
22分钟前
2
0
TL665xF-EasyEVM开发板硬件处理器、NAND FLASH、RAM

广州创龙结合TI KeyStone系列多核架构TMS320C665x及Xilinx Artix-7系列FPGA设计的TL665xF-EasyEVM开发板是一款DSP+FPGA高速大数据采集处理平台,其底板采用沉金无铅工艺的6层板设计,适用于高...

Tronlong创龙
25分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部