首页 > 编程语言 > 详细

java对文件hash

时间:2014-04-04 04:49:51      阅读:407      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
package cn.iautos.mall.utils;

import java.io.FileInputStream;
import java.io.InputStream;
import java.security.MessageDigest;

import org.springframework.util.StringUtils;

public class CheckHashUtils {
    
    
    public static String getHashByFile(String fileName) throws Exception{
        return getMD5Checksum(fileName,null);
    }
    public static String getHashByStream(InputStream fis) throws Exception{
        return getMD5Checksum(null,fis);
    }
    
    
    private static byte[] createChecksum(String filename,InputStream fis) throws Exception {
        if(!StringUtils.isEmpty(filename)){
            fis =  new FileInputStream(filename);
        }
        byte[] buffer = new byte[1024];
        MessageDigest complete = MessageDigest.getInstance("MD5");
        int numRead;

        do {
            numRead = fis.read(buffer);
            if (numRead > 0) {
                complete.update(buffer, 0, numRead);
            }
        } while (numRead != -1);

        fis.close();
        return complete.digest();
    }
 
    private static String getMD5Checksum(String filename,InputStream fis) throws Exception {
        byte[] b = createChecksum(filename,fis);
        String result = "";

        for (int i=0; i < b.length; i++) {
            result += Integer.toString( ( b[i] & 0xff ) + 0x100, 16).substring( 1 );
        }
        return result;
    }

}
bubuko.com,布布扣

 

java对文件hash,布布扣,bubuko.com

java对文件hash

原文:http://www.cnblogs.com/xuzhenmin/p/3643058.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!