java 中,如何获取文件的MD5值呢?如何比较两个文件是否完全相同呢?
/** * Get MD5 of one file:hex string,test OK! * * @param file * @return */ public static String getFileMD5(File file) { if (!file.exists() || !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)) != NEGATIVE_ONE) { 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); } /*** * Get MD5 of one file!test ok! * * @param filepath * @return */ public static String getFileMD5(String filepath) { File file = new File(filepath); return getFileMD5(file); } /** * MD5 encrypt,test ok * * @param data * @return byte[] * @throws Exception */ public static byte[] encryptMD5(byte[] data) throws Exception { MessageDigest md5 = MessageDigest.getInstance(SystemUtil.KEY_MD5); md5.update(data); return md5.digest(); } public static byte[] encryptMD5(String data) throws Exception { return encryptMD5(data.getBytes(SystemUtil.CHARSET_ISO88591)); } /*** * compare two file by Md5 * * @param file1 * @param file2 * @return */ public static boolean isSameMd5(File file1,File file2){ String md5_1=SystemUtil.getFileMD5(file1); String md5_2=SystemUtil.getFileMD5(file2); return md5_1.equals(md5_2); } /*** * compare two file by Md5 * * @param filepath1 * @param filepath2 * @return */ public static boolean isSameMd5(String filepath1,String filepath2){ File file1=new File(filepath1); File file2=new File(filepath2); return isSameMd5(file1, file2); }
测试(使用junit):
@Test public void test_getFileMD5() throws Exception{ String filepath="D:\\download\\3_尚学堂_UML概览.avi"; // File file=new File(filepath); String md5_1=SystemUtil.getFileMD5(filepath); System.out.println(md5_1); byte[]bytes=FileUtils.readBytes4file(filepath); byte[]md5=SystemUtil.encryptMD5(bytes); String md5_2=SystemUtil.toHexString(md5); System.out.println(md5_2); Assert.assertEquals(md5_1, md5_2); }
相关推荐
java源码 java 获取文件md5值(用于检测文件完整性) .
Java计算文件MD5值(支持大文件) package com.hthl.xxtd; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.security.MessageDigest; import org....
java源码,用来获得文件的MD5,如果电脑上没有MD5软件,可以用这个,一运行就知道MD5值是多少。 略作修改即可计算字符串的MD5值。
SHA1或MD5算法获取文件摘要值(JAVA)
解决java 与C# MD5 不一致问题
Java 中文件的MD5和SHA-1的研究 Java中提供了一个类java.security.MessageDigest类是一种提供密码安全消息摘要如SHA-1和MD5功能的引擎类。不需要额外使用第三方组件,且支持超大文件。
使用Java语言,实现获取大文件文件流来计算md5
Java程序。可以生成文件的MD5哈希值。生成的Hash值可保存到txt文件中。程序完全可运行。
# java实现对文件的各种操作的工具类 ## 可以实现的操作有: 1. 删除单个文件 2. 删除文件夹及文件夹下的文件 3. 使用文件流对单个文件进行复制 4. 复制整个文件夹内容(包含子文件夹中的所有内容) 5. ...
文件里包含使用MD5加密算法获取文件的MD5校验码的代码,也包含MD5加密字符串的代码
AESFileUtil MD5FileUtils FileUploadUtil FileUtil MinioUtils
纯java获取指定目录下的所有问价和目录,采用递归算法,如果是文件还能得到该文件的MD5值,两个文件夹中文件和目录进行比较,发现被篡改的文件和目录,返回比较后的结果。
对于文本文件(.txt,.java,.c,.cpp),使用字符流处理 对于非文本文件(.jpg,.mp3,.mp4,.avi,.doc,.ppt,...),使用字节流处理 2.数据的流向:输入流、输出流 3.流的角色:节点流、处理流 节点流:直接从数据...
此为MD5的加密所需要的jar文件 MD5加密只需要此jar包 和如下代码将可获得加密结果,希望大家用的开心 //导入此import import cryptix.jce.provider.MD5; //MD5加密签名 String password ="1234567"; MD5 md5 = ...
用Gradle生成md5代码,直接复制到build.gradle中然后调用这个方法即可
通过指定的文件路径获取文件的32位哈希值
用来解析mp3文件的信息~还有MD5加密字符与文件的代码,方便快捷的使用哟~~
本篇文章主要介绍了详解Java无需解压直接读取Zip文件和文件内容,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
/*获取指定路径下文件的MD5值*/ public static String getFileSHA1(String filename);/*获取指定路径下文件的SHA1值*/ public static String getFileSHA256(String filename);/*获取指定路径下文件的SHA-256值*/ ...