歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java讀取文件MD5的兩種方案

最近要弄一下Java讀取文件MD5,注意這裡是小文件,網上找了一下,有兩種解決方案,一種是用MessageDigest來實現,另種是用org.apache.commons.codec.digest來實現,代碼如下:

package cdm;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.math.BigInteger;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.security.MessageDigest;

import org.apache.commons.codec.digest.*;
import org.apache.commons.io.IOUtils;

public class testMD5 {
 
  public static String getMd5ByFile(File file) throws FileNotFoundException {
        String value = null;
        FileInputStream in = new FileInputStream(file);
  try {
      MappedByteBuffer byteBuffer = in.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, file.length());
      MessageDigest md5 = MessageDigest.getInstance("MD5");
      md5.update(byteBuffer);
      BigInteger bi = new BigInteger(1, md5.digest());
      value = bi.toString(16);
  } catch (Exception e) {
      e.printStackTrace();
  } finally {
            if(null != in) {
              try {
          in.close();
      } catch (IOException e) {
          e.printStackTrace();
      }
      }
  }
  return value;
    }
 
 public static void main(String[] args) throws IOException {
 
  String path="E:\\commons-codec-1.9-bin.zip";
 
  String v = getMd5ByFile(new File(path));
  System.out.println("MD5:"+v.toUpperCase());
 
  FileInputStream fis= new FileInputStream(path); 
  String md5 = DigestUtils.md5Hex(IOUtils.toByteArray(fis)); 
  IOUtils.closeQuietly(fis); 
  System.out.println("MD5:"+md5);
 
  //System.out.println("MD5:"+DigestUtils.md5Hex("WANGQIUYUN"));
 }

}

Java實現MD5加密解密類 http://www.linuxidc.com/Linux/2014-06/102732.htm

Java項目中用到的MD5加密 http://www.linuxidc.com/Linux/2014-03/98747.htm

Linux下MD5sum 校驗文件完整性 http://www.linuxidc.com/Linux/2014-03/98416.htm

使用OpenSSL的MD5計算功能 http://www.linuxidc.com/Linux/2013-10/91119.htm

Linux下計算文件的MD5值 http://www.linuxidc.com/Linux/2012-11/74902.htm

運行

結果在官網提供的MD5一致。

附commons-codec-1.9.jar下載地址:http://commons.apache.org/proper/commons-codec/download_codec.cgi

如果要處理過G的文件,請參照:http://www.linuxidc.com/Linux/2014-09/106397p2.htm

Copyright © Linux教程網 All Rights Reserved