精华内容
下载资源
问答
  • 2019-11-07 23:03:43

    public static void main(String[] args) throws ParseException, IOException {

          try {
                  File file = new File("C://Users//Administrator//Desktop//aabb//OverviewInfo-201904-20190506185734-03.txt");
                  FileInputStream fis = new FileInputStream(file);
                  MessageDigest md = MessageDigest.getInstance("MD5");
                  byte[] buffer = new byte[1024];
                  int length = -1;
                  while ((length = fis.read(buffer, 0, 1024)) != -1) {
                    md.update(buffer, 0, length);
                 }
                  BigInteger bigInt = new BigInteger(1, md.digest());
                  System.out.println("文件md5值:" + bigInt.toString(16));
               } catch (FileNotFoundException e) {
                  e.printStackTrace();
              } catch (NoSuchAlgorithmException e) {
                   e.printStackTrace();
              } catch (IOException e) {
                   e.printStackTrace();
              }

    }

    更多相关内容
  • 计算文件MD5值.zip

    2020-11-13 16:06:18
    批量生成文件MD5值的python脚本,windows环境可直接运行bat文件,有使用说明,傻瓜式操作,便捷易懂
  • Java计算文件MD5值(支持大文件) package com.hthl.xxtd; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.security.MessageDigest; import org....
  • linux下的c语言写的计算文件md5、文件和md5值是否匹配代码,计算出来的文件md5和md5sum工具计算出来的是一样的。纯c代码,包括编译说明,可直接编译和测试。
  • 1、windows下计算文件夹下所有文件MD5值,并保存在指定文件 2、非递归方式扫描文件夹下所有文件。 3、压缩包中包含源代码
  • 文件md5值计算工具

    2018-02-09 09:28:31
    超级方便的文件md5值计算工具,效率高,拖入文件到窗口中,即可计算该文件的MD5值,可以用于对两文件进行二进制级别比较,特别网上下载的各种系统安装光盘。
  • PB9计算文件MD5值和本地IP,MD.dll及相应的pb源码,MD.dll可以直接使用
  • java 计算文件MD5值 大文件

    千次阅读 2021-03-01 06:26:45
    MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性。用术语讲,MD5种消息摘要算法(Message Digest Algorithm)。另外还有种常用的消息摘要算法SHA1。如果想了解这些的话,可以去百度百科:MD5、SHA...

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

    Java已经实现了MD5、SHA1算法。利用java.security.MessageDigest类就可以获取字符串和文件的MD5以及SHA1结果。

    1.字符串的MD5(下面的代码有详细注释)

    public static String stringMD5(String input) {

    try {

    // 拿到一个MD5转换器(如果想要SHA1参数换成”SHA1”)

    MessageDigest messageDigest =MessageDigest.getInstance("MD5");

    // 输入的字符串转换成字节数组

    byte[] inputByteArray = input.getBytes();

    // inputByteArray是输入字符串转换得到的字节数组

    messageDigest.update(inputByteArray);

    // 转换并返回结果,也是字节数组,包含16个元素

    byte[] resultByteArray = messageDigest.digest();

    // 字符数组转换成字符串返回

    return byteArrayToHex(resultByteArray);

    } catch (NoSuchAlgorithmException e) {

    return null;

    }

    }

    //下面这个函数用于将字节数组换成成16进制的字符串

    public static String byteArrayToHex(byte[] byteArray) {

    String hs = "";

    String stmp = "";

    for (int n = 0; n < b.length; n++) {

    stmp = (Integer.toHexString(b[n] & 0XFF));

    if (stmp.length() == 1) {

    hs = hs + "0" + stmp;

    } else {

    hs = hs + stmp;

    }

    if (n < b.length - 1) {

    hs = hs + "";

    }

    }

    // return hs.toUpperCase();

    return hs;

    // 首先初始化一个字符数组,用来存放每个16进制字符

    /*char[] hexDigits = {'0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F' };

    // new一个字符数组,这个就是用来组成结果字符串的(解释一下:一个byte是八位二进制,也就是2位十六进制字符(2的8次方等于16的2次方))

    char[] resultCharArray =new char[byteArray.length * 2];

    // 遍历字节数组,通过位运算(位运算效率高),转换成字符放到字符数组中去

    int index = 0;

    for (byte b : byteArray) {

    resultCharArray[index++] = hexDigits[b>>> 4 & 0xf];

    resultCharArray[index++] = hexDigits[b& 0xf];

    }

    // 字符数组组合成字符串返回

    return new String(resultCharArray);*/

    }

    从上面代码可以看出,使用MessageDigest对字符串进行MD5算法的步骤是,先将字符串转换成字节数组,在进行MD5算法,最后返回的也是一个字节数组,要我们自己转成32位的字符串。

    2.文件MD5

    对文件进行MD5也可以像字符串MD5一样的,首先要把文件转成字节数组,后面和字符串MD5完全一样。

    但是如果是一个特别大的文件,一下子把一个文件的数组全部读到内存中,那么估计内存也吃不消。

    对于大文件,可以使用DigestInputStream。

    public static String fileMD5(String inputFile) throws IOException {

    // 缓冲区大小(这个可以抽出一个参数)

    int bufferSize = 256 * 1024;

    FileInputStream fileInputStream = null;

    DigestInputStream digestInputStream = null;

    try {

    // 拿到一个MD5转换器(同样,这里可以换成SHA1)

    MessageDigest messageDigest =MessageDigest.getInstance("MD5");

    // 使用DigestInputStream

    fileInputStream = new FileInputStream(inputFile);

    digestInputStream = new DigestInputStream(fileInputStream,messageDigest);

    // read的过程中进行MD5处理,直到读完文件

    byte[] buffer =new byte[bufferSize];

    while (digestInputStream.read(buffer) > 0);

    // 获取最终的MessageDigest

    messageDigest= digestInputStream.getMessageDigest();

    // 拿到结果,也是字节数组,包含16个元素

    byte[] resultByteArray = messageDigest.digest();

    // 同样,把字节数组转换成字符串

    return byteArrayToHex(resultByteArray);

    } catch (NoSuchAlgorithmException e) {

    return null;

    } finally {

    try {

    digestInputStream.close();

    } catch (Exception e) {

    }

    try {

    fileInputStream.close();

    } catch (Exception e) {

    }

    }

    }

    上面的方法本人亲测过大小约4G的文件,得出的MD5值和网上下载的一个MD5小工具得到的MD5值一样,说明上面的方式没有什么问题。不过取大文件的MD5很慢,4G的文件跑一下要一分钟(I5处理器 6G内存 64位XP系统 本本)。

    附1:我在网上还看到一种给文件MD5的方式

    [java]

    public static String getFileMD5String(File file) throws IOException{

    FileInputStream in = new FileInputStream(file);

    FileChannel ch =in.getChannel();

    MappedByteBuffer byteBuffer =ch.map(FileChannel.MapMode.READ_ONLY, 0,file.length());

    messagedigest.update(byteBuffer);

    return byteArrayToHex (messagedigest.digest());

    }

    我也尝试过这样的方式,但是如果文件大于2G,那么这种方式会出现异常。所以不推荐。

    附2:测试文件MD5的main方法

    [java]

    public static void main(String[] args) {

    long startTime = System.currentTimeMillis();

    try {

    System.out.println(fileMD5("E:/软件/VS2008ProEdition90DayTrialCHSX1435983.iso"));

    } catch (IOException e) {

    e.printStackTrace();

    }

    long endTime = System.currentTimeMillis();

    System.out.println((endTime - startTime)/1000);

    }

    展开全文
  • 采用MFC框架,可以计算文件和字符串的MD5值,大家可以借鉴学习下,仅供新手学习,通过了自己的验证,计算MD5值都是正确的
  • Windows平台用于计算文件md5值的工具。Windows平台用于计算文件md5值的工具。Windows平台用于计算文件md5值的工具。Windows平台用于计算文件md5值的工具。
  • 计算文件MD5值

    2016-04-17 02:20:49
    运用分段读取的方法可以大文件计算文件MD5和sha1的,来比对两文件是否完全相同
  • 可以计算文件的SM3,MD5, SHA1,SHA256摘要工具,支持拖拽到编辑框自动计算,也可以手动选择,支持保存到剪贴板和保存到文本文件
  • 计算文件MD5值的多种方法

    千次阅读 2019-08-22 11:13:35
    计算文件MD5值的多种方法方法:CMD计算本地文件方法二:Java计算上传文件方法三:Java计算本地文件demo1demo2 方法:CMD计算本地文件 进入cmd,输入命令 // F:\a.txt是文件路径 certutil -hashfile F:\a.txt MD5 ...

    方法一:CMD计算本地文件

    进入cmd,输入命令

    // F:\a.txt是文件路径
    certutil -hashfile F:\a.txt MD5
    

    如下所示:
    在这里插入图片描述

    方法二:Java计算上传文件

    import org.springframework.web.multipart.MultipartFile;
    import java.security.MessageDigest;
    import java.io.File;
    
    public String geMD5(MultipartFile file) throws Exception {
        		MessageDigest mMessageDigest  = MessageDigest.getInstance("MD5");
        		InputStream fis = file.getInputStream();
        		byte[] buffer = new byte[1024];
        		int length = -1;
        		while ((length = fis.read(buffer, 0, 1024)) > 0) {
        			mMessageDigest.update(buffer, 0, length);
        		}
        		fis.close();
        		return new BigInteger(1, mMessageDigest.digest()).toString(16);
        }
    

    方法三:Java计算本地文件

    demo1

    import org.apache.commons.codec.binary.Hex;
    import java.security.MessageDigest;
    import java.io.File;
    import java.io.FileInputStream;
    
    private String getMD5(String filePath) throws Exception {
    		File file = new File(filePath);
    		FileInputStream fis= new FileInputStream(file);
    		MessageDigest MD5 = MessageDigest.getInstance("MD5");
    		byte[] buffer = new byte[1024];
    		int length;
    		while ((length = fis.read(buffer)) != -1) {
    			MD5.update(buffer, 0, length);
    		}
    		fis.close();
    		return new String(Hex.encodeHex(MD5.digest()));
    	}
    

    demo2

    import org.apache.commons.codec.binary.Hex;
    import java.security.MessageDigest;
    import java.io.File;
    import java.io.FileInputStream;
    
    private String getMD5(String filePath) throws Exception {
    		File file = new File(filePath);
    		MessageDigest MD5 = MessageDigest.getInstance("MD5");
    		FileInputStream fis = new FileInputStream(file);
    		byte[] buffer = new byte[1024];
    		int length = -1;
    		while ((length = fis.read(buffer, 0, 1024)) > 0) {
    			MD5.update(buffer, 0, length);
    		}
    		fis.close();
    		return new BigInteger(1, MD5.digest()).toString(16);
    	}
    
    展开全文
  • java实现的计算文件md5值 工具类代码
  • 最近项目中需要通过文件md5值判断文件有没有损坏,特此记录便于日后查阅。 import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.security.MessageDigest; import ...

    最近项目中需要通过文件md5值判断文件有没有损坏,特此记录便于日后查阅。

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.security.MessageDigest;
     
    import org.apache.commons.codec.binary.Hex;
    import org.apache.commons.codec.digest.DigestUtils;
     
    /**
     *MD5计算工具
     */
    public class Md5CaculateUtil {
     
        /**
         * 获取一个文件的md5值(可处理大文件)
         * @return md5 value
         */
        public static String getMD5(File file) {
            FileInputStream fileInputStream = null;
            try {
                MessageDigest MD5 = MessageDigest.getInstance("MD5");
                fileInputStream = new FileInputStream(file);
                byte[] buffer = new byte[8192];
                int length;
                while ((length = fileInputStream.read(buffer)) != -1) {
                    MD5.update(buffer, 0, length);
                }
                return new String(Hex.encodeHex(MD5.digest()));
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            } finally {
                try {
                    if (fileInputStream != null){
                        fileInputStream.close();
                        }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
     
        /**
         * 求一个字符串的md5值
         * @param target 字符串
         * @return md5 value
         */
        public static String MD5(String target) {
            return DigestUtils.md5Hex(target);
        }
     
        public static void main(String[] args) {
            long beginTime = System.currentTimeMillis();
            File file = new File("D:/1/pdi-ce-7.0.0.0-24.zip");
            String md5 = getMD5(file);
            long endTime = System.currentTimeMillis();
            System.out.println("MD5:" + md5 + "\n 耗时:" + ((endTime - beginTime) / 1000) + "s");
        }
    }

    到此Java语言计算文件MD5值介绍完成。

    展开全文
  • 工程利用STM32计算文件MD5值校验文件,此代码是一个完整的工程。MD5计算将整个文件或者字符串,通过其不可逆的字符串变换计算,产生文件或字符串的MD5散列。任意两个文件、字符串不会有相同的散列(即“很大可能...
  • js计算文件MD5值

    万次阅读 2017-10-30 20:07:55
    百度百科解释MD5Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for ...
  • Python实验:计算文件MD5值

    千次阅读 2020-12-01 16:54:53
    MD5是一种常见的哈希算法,不论原始信息长度如何,总是计算得到一个固定长度的二进制串。该算法对原文的改动非常敏感,也就是说,原文哪怕只做非常微小的改动,重新计算得到的MD5会有巨大的变化。因此,该算法常用于...
  • 用C++计算文件MD5值

    千次阅读 2018-11-23 16:22:44
    用C++计算文件MD5值,相关的代码如下: md5.h #ifndef MD5_H #define MD5_H #include &lt;string&gt; #include &lt;fstream&gt; /* Type define */ typedef unsigned char byte; typedef ...
  • MD5 C++实现 对文件计算MD5值

    热门讨论 2011-08-31 13:08:47
    MD5值算法 C++实现 bool GetFileMd5(char *pMd5, const char *pFileName);
  • 文件md5值计算,通过该工具你可以轻松获得文件的MD5值
  • MD5(Message Digest Algorithm,信息摘要算法),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列(hash value),用于确保信息传输完整一致。它后面这个数字 5 是因为它是为了取代 MD4 而...
  • Java计算文件MD5值

    千次阅读 2019-02-28 18:27:59
    在文件上传下载相关的操作中,我们通常会遇到需要计算文件MD5的场景,计算文件MD5值的方法和计算字符串的MD5值有些类似,这里先来介绍普通的计算字符串的MD5方法。 commons-codec这个jar给我们提供了一个MD5实现,...
  • [Golang]计算一个文件MD5值

    万次阅读 2018-05-07 16:00:13
    在实际的开发过程中,总需要对文件进行md5加密的需求,在开发过程中,我就遇到了将表单文件MD5后再存储本地的需求。 解决 MD5的所需要的包在”crypto/md5”包中,需要先实例化一个MD5对象,然后在此基础上调用...
  • 比较两个文件是否相同,一般都是比较文件MD5值是否相同,java中计算MD5值的方法如下: private MessageDigest mMessageDigest = null; try { mMessageDigest = MessageDigest.getInstance("MD5"); } catch ...
  • 计算文件 MD5

    千次阅读 2019-09-16 15:19:22
    本篇文章的重点:拿到 File 对象之后,如何计算文件md5 ?几千个文件同时计算,页面卡顿崩溃怎么解决?
  • windows_md5sum_命令行计算文件md5
  • 计算文件MD5值 (hashcode)

    千次阅读 2018-06-07 08:38:39
    /** * 计算文件MD5 * @return 文件MD5 */ public static String getMd5ByFile(String path) throws FileNotFoundException { File file = new File(path); String value = null; ...
  • 计算和验证文件MD5 或 SHA-1 加密哈希
  • 此工程利用STM32计算文件MD5值,用于文件校验。 、MD5计算将整个文件或者字符串,通过其不可逆的字符串变换计算,产生文件或字符串的MD5散列。任意两文件、字符串不会有相同的散列(即“很大可能”是不一样...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 214,767
精华内容 85,906
关键字:

如何计算一个文件的md5值