Java读取文件MD5的两种措施
发布时间:2021-11-20 13:41:48 所属栏目:教程 来源:互联网
导读:最近要弄一下Java读取文件MD5,注意这里是小文件,网上找了一下,有两种解决方案,一种是用MessageDigest来实现,另种是用org.apache.commons.codec.digest来实现,代码如下: package cdm; import java.io.File; import java.io.FileInputStream; import ja
最近要弄一下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")); } } (编辑:开发网_开封站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |