`

file计算MD5

 
阅读更多

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class FileMd5Utils {
     protected static char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}; 
        protected static MessageDigest messageDigest = null; 
        static{
            try{ 
                messageDigest = MessageDigest.getInstance("MD5"); 
            }catch (NoSuchAlgorithmException e) { 
                System.err.println(FileMd5Utils.class.getName()+"初始化失败,MessageDigest不支持MD5Util."); 
                e.printStackTrace(); 
            } 
        } 
         
        /**
         * 计算文件的MD5
         * @param fileName 文件的绝对路径
         * @return
         * @throws IOException
         */ 
        public static String getFileMD5String(String fileName) throws IOException{ 
            File f = new File(fileName); 
            return getFileMD5String(f); 
        } 
         
        /**
         * 计算文件的MD5,重载方法
         * @param file 文件对象
         * @return
         * @throws IOException
         */ 
        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 bufferToHex(messageDigest.digest()); 
        } 
         
        private static String bufferToHex(byte bytes[]) { 
           return bufferToHex(bytes, 0, bytes.length); 
        } 
         
        private static String bufferToHex(byte bytes[], int m, int n) { 
           StringBuffer stringbuffer = new StringBuffer(2 * n); 
           int k = m + n; 
           for (int l = m; l < k; l++) { 
            appendHexPair(bytes[l], stringbuffer); 
           } 
           return stringbuffer.toString(); 
        } 
         
        private static void appendHexPair(byte bt, StringBuffer stringbuffer) { 
           char c0 = hexDigits[(bt & 0xf0) >> 4]; 
           char c1 = hexDigits[bt & 0xf]; 
           stringbuffer.append(c0); 
           stringbuffer.append(c1); 
        } 
         
        public static void main(String[] args) throws IOException { 
            String fileName = "F:\\test01\\1.txt";
            String str = "d0970714757783e6cf17b26fb8e2298f";
            String str2 = "ea3ed20b6b101a09085ef09c97da1597";
            System.out.println(str.equals(str2));
            System.out.println(getFileMD5String(fileName));
        } 
}

分享到:
评论

相关推荐

    browser-md5-file-1.0.0.zip

    例如,可以创建一个`&lt;input type="file"&gt;`元素让用户选择文件,接着监听文件选择事件,获取文件并计算MD5值。以下是一个简单的示例: ```html &lt;!DOCTYPE html&gt; &lt;title&gt;Browser MD5 File 示例 ...

    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....

    MD5文件转换器MD5File is a command line utility

    总的来说,MD5File是一个简单但实用的命令行工具,通过提供MD5散列计算功能,帮助用户验证文件的完整性和一致性,确保数据的安全无误。虽然MD5算法存在安全性上的局限,但在非安全关键的应用场景中,它依然是一种...

    计算md5值的C++类

    你提到的"计算MD5值的C++类"提供了这样的功能。 MD5算法的基本流程包括四个步骤:初始化、压缩函数、填充和输出。初始化阶段设置16个32位的中间变量,压缩函数通过对输入信息进行多次迭代处理,不断更新这些中间...

    c# md5计算

    这种方法更加通用,不仅限于Web环境,可以通过创建`MD5CryptoServiceProvider`对象来计算MD5值。 ```csharp using System.Security.Cryptography; using System.Text; string myString = "Hello World!"; MD5 md5 ...

    windows_md5sum_命令行计算文件md5

    md5sum file1.txt file2.txt file3.txt ``` 6. **验证MD5值** 当从网络上下载了重要文件后,你可以通过比较下载文件的MD5值与发布者提供的MD5值来确认文件的完整性。如果两者相同,则表明文件在传输过程中没有...

    计算文件的MD5结果

    在编程中,许多语言都提供了计算MD5的库或函数。例如,在Python中,可以使用`hashlib`库来计算文件的MD5值: ```python import hashlib def calculate_md5(file_path): with open(file_path, 'rb') as f: md5 = ...

    VC/MFC 获取文件MD5值 获取大文件MD5值

    4. **使用计算MD5的函数**:在你的MFC应用程序中,调用这个函数,传入你想要计算MD5值的文件路径,然后就可以得到文件的MD5值了。 5. **处理大文件**:在上述代码中,我们使用了一个固定大小的缓冲区读取文件,这种...

    计算文件MD5

    在标题"计算文件MD5"中,我们讨论的是如何通过编程实现对文件内容进行MD5哈希计算,生成一个唯一的MD5值,以验证文件是否被篡改或在传输过程中是否保持完整。计算文件MD5的步骤一般包括以下几个部分: 1. **读取...

    C++计算MD5值计算机系统为Linux Deepin

    以下是一个简单的C++程序示例,它使用了开源库`openssl`来计算MD5值: ```cpp #include &lt;openssl/md5.h&gt; #include #include #include #include std::string calculateMD5(const std::string& filePath) { std...

    MD5 File Hasher

    MD5 File Hasher 是一款专为用户批量生成文件MD5哈希值的工具。MD5,全称为Message-Digest Algorithm 5,是一种广泛使用的加密散列函数,产生一个128位(16字节)的散列值,通常用32个十六进制数字表示。这种散列...

    C++版MD5计算

    这个函数首先创建一个MD5摘要对象,然后使用`MD5()`函数计算输入字符串的哈希值。最后,通过循环遍历摘要数组,将每个字节转换为16进制字符串,并拼接成最终的MD5值。 如果你想计算文件的MD5,可以读取文件内容并...

    在浏览器中获取文件或字串的md5的js源代码

    标题中的“在浏览器中获取文件或字串的md5的js...总结,利用JavaScript在浏览器中计算MD5是一种常见的需求,尤其在进行数据验证和前端开发时。SparkMD5库提供了一种有效、便捷的解决方案,但需要注意MD5的安全性问题。

    md5计算c++6.0编写

    这个例子中,`calculateMD5`函数接收文件路径,打开文件,逐块读取内容并计算MD5值,最后将16字节的结果转换成16进制字符串返回。 总结来说,C++6.0环境下实现MD5计算可以选择引入第三方库如OpenSSL,或者自行实现...

    C#计算文件的MD5值实例

    MD5值在很多场景下都很有用,比如在文件下载过程中,用户可以先获取服务器上文件的MD5值,下载完成后本地计算文件的MD5值,两者相匹配则说明文件传输无误。然而,需要注意的是,MD5算法的安全性在现代密码学标准中...

    计算文件MD5 c++源码

    总结来说,计算文件的MD5值在C++中主要依赖于第三方库如`openssl`,通过初始化MD5上下文、读取文件内容更新MD5值,最后生成和返回16进制的MD5摘要。注意文件路径的处理和适配不同操作系统的需求,以确保程序的健壮性...

    javascript获取图片的md5

    在提供的文件列表中,`spark-md5.min.js`很可能就是一个轻量级的JavaScript MD5库,能够方便地集成到项目中,用于计算MD5。 以下是使用这些技术的基本步骤: 1. **获取图片数据**:通过HTML的`&lt;input type="file"&gt;...

    File_Md5.zip

    "File_Md5.zip"这个压缩包可能包含了用于进行MD5计算的Delphi 10代码示例或库。Delphi是一款强大的面向对象的 Pascal 编程环境,由Embarcadero Technologies开发,它支持Windows、macOS、iOS和Android等多个平台。在...

    MD5算法的JavaBean.rar_md5_md5 文件比对 java_md5算法_指纹_计算 文件 MD5

    System.err.println("计算 " + file + " 的MD5时发生错误:" + e.getMessage()); } } ``` 总的来说,MD5算法在Java中是一个强大的工具,用于生成文件指纹、比对文件内容以及进行数据校验。通过创建一个JavaBean,...

    Gradle生成md5代码

    首先,我们通过`file()`方法指定要计算MD5的文件路径,然后将其字节内容传递给`md5Hex`方法,该方法会返回一个16进制表示的MD5字符串。最后,我们通过`println`打印出MD5值。 为了运行这个任务,只需在终端或命令行...

Global site tag (gtag.js) - Google Analytics