`
ansili
  • 浏览: 55041 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

通过文件的md5值快速比较两个文件

    博客分类:
  • java
阅读更多
import java.applet.*;   
import java.io.*;   
import java.security.*;   
  
public class HashFile {   
    public static char[] hexChar = {'0', '1', '2', '3',   
                                   '4', '5', '6', '7',   
                                   '8', '9', 'a', 'b',   
                                   'c', 'd', 'e', 'f'};   
    public static void main(String[] args) throws  
            Exception {   
        String fileName = "D:\\programs\\Foxmail.rar";   
        String hashType = "MD5";   
        System.out.println(hashType + " == " +   
                           getHash(fileName, hashType));   
        hashType = "SHA1";   
        System.out.println(hashType + " == " +   
                           getHash(fileName, hashType));   
        hashType = "SHA-256";   
        System.out.println(hashType + " == " +   
                           getHash(fileName, hashType));   
        hashType = "SHA-384";   
        System.out.println(hashType + " == " +   
                           getHash(fileName, hashType));   
        hashType = "SHA-512";   
        System.out.println(hashType + " == " +   
                           getHash(fileName, hashType));   
  
    }   
  
    public static String getHash(String fileName, String hashType) throws  
            Exception {   
        InputStream fis;   
        fis = new FileInputStream(fileName);   
        byte[] buffer = new byte[1024];   
        MessageDigest md5 = MessageDigest.getInstance(hashType);   
        int numRead = 0;   
        while ((numRead = fis.read(buffer)) > 0) {   
            md5.update(buffer, 0, numRead);   
        }   
        fis.close();   
        return toHexString(md5.digest());   
    }   
  
    public static String toHexString(byte[] b) {   
        StringBuilder sb = new StringBuilder(b.length * 2);   
        for (int i = 0; i < b.length; i++) {   
            sb.append(hexChar[(b[i] & 0xf0) >>> 4]);   
            sb.append(hexChar[b[i] & 0x0f]);   
        }   
        return sb.toString();   
    }   
}  

 

分享到:
评论

相关推荐

    获取目录下所有文件和文件夹,并计算其MD5值,两个文件夹比较,得出被篡改的目录路径

    比较两个文件夹的内容时,可以将每个文件或子目录的路径和对应的MD5值存储为键值对,形成两个哈希表。然后,通过比较这两个哈希表,找出只在一个文件夹中存在的元素,以及MD5值不匹配的文件,这些就是被篡改的文件或...

    MD5 C++实现 对文件计算MD5值

    这个函数接受两个参数:`pMd5`是一个字符数组,用于存储计算得到的MD5值;`pFileName`是待处理文件的路径。函数返回一个布尔值,表示计算MD5值是否成功。 在C++中实现MD5,通常需要以下步骤: 1. **包含必要的库**...

    文件MD5值检测

    标题“文件MD5值检测”指的是在下载文件后,通过计算并比较文件的MD5值来验证文件的完整性。这个过程通常包括以下步骤: 1. **获取源文件的MD5值**:在下载文件前,我们需要先知道原始文件的MD5值,这通常由文件...

    两个文件的MD5相同

    描述中提到的"两个文件的MD5相同",这意味着这两个文件经过MD5哈希计算后得到了相同的哈希值。这在很多情况下意味着两个文件的内容是完全一样的,因为MD5的特性是只要输入的明文不同,输出的哈希值就应当不同。然而...

    文件md5值计算工具

    此外,"对两个文件进行二进制级别比较"是MD5值的主要应用之一,通过比较两个文件的MD5值,如果它们相同,那么我们可以认为这两个文件在二进制内容上是完全一样的,即使文件大小或修改日期不同。这在检测文件是否被...

    hash 快速验证文件md5值

    这个"hash 快速验证文件md5值"的工具正是为了方便用户快速计算并比对文件的MD5值。 MD5的主要用途在于检验文件的完整性和一致性。当你从网络下载一个大文件或重要文件时,可以先获取该文件的官方MD5值,然后用MD5...

    自动获取压缩文件MD5值,并生成json

    标题中的“自动获取压缩文件MD5值,并生成json”指的是一个Windows桌面应用程序工具,它能够自动计算一个压缩文件(如ZIP或RAR)的MD5校验和,并将这个值保存到JSON格式的文件中。MD5(Message-Digest Algorithm 5)...

    MD5计算器-计算文件MD5值

    4. **源代码**:提供的压缩包中包含`md5.cpp`和`md5.h`两个文件。`md5.cpp`很可能是实现MD5算法和相关功能的C++源代码,而`Md5Encoder.exe`则应该是编译后的可执行文件,可以直接运行计算MD5值。通过查看这些源代码...

    文件MD5指定修改为任意值工具.zip

    在提供的压缩包文件中,有两个文件: 1. SkinH_EL.dll - 这可能是一个动态链接库文件(DLL),它包含可由其他程序调用的函数。DLL文件有助于节省内存和磁盘空间,因为多个程序可以共享同一份代码。 2. 文件MD5修改器...

    PB9计算文件MD5值和本地IP

    PB9计算文件MD5值和本地IP的知识点主要涉及两个核心概念:MD5散列算法和获取本地IP地址。这两个技术在IT行业中有着广泛的应用。 首先,MD5(Message-Digest Algorithm 5)是一种广泛使用的加密散列函数,产生一个...

    【MD5值测算工具】计算你文件的MD5值

    这类工具对于验证下载的文件是否完整,或者检测两个文件是否内容相同非常有用。例如,当你从互联网上下载一个大文件后,可以使用MD5值测算工具来计算下载的文件与原始文件的MD5值,如果两者一致,说明文件在传输过程...

    一个比较好用的md5计算工具

    - 如果需要比较文件,可以计算另一个文件的MD5,然后手动或通过工具比较两个MD5值是否一致。 综上所述,MD5计算工具,如MD5Summer,是日常维护数据完整性和验证文件一致性的重要工具。尽管MD5在安全性方面存在不足...

    计算文件的MD5值

    当你有两个看似相同的文件,但不确定它们是否完全一致时,可以通过计算这两个文件的MD5值进行比较。如果两个文件的MD5值相同,那么我们可以非常确定这两个文件内容是完全一样的;如果MD5值不同,则表明至少有一个...

    MD5值对比用于检测下载文件的正确

    标题中的"MD5值对比用于检测下载文件的正确",意味着当用户从网络上下载文件时,可以通过比较下载后的文件MD5值与源文件提供的MD5值来确认文件是否完整无误。如果两者匹配,说明下载的文件与原始文件内容一致,没有...

    为文件生成MD5值

    1. 文件校验:当下载或传输大文件时,接收方可以通过计算文件的MD5值并与提供者给出的MD5值进行对比,确保文件在传输过程中没有被篡改或损坏。 2. 密码存储:尽管MD5的安全性已不如从前,但在一些不太关注安全性的...

    md5文件生成工具

    2. 数据安全:MD5虽然因为存在碰撞问题(两个不同的文件可能生成相同的MD5值),不再适用于安全性要求极高的场景,如密码存储,但在一般的数据校验中仍能起到很好的作用。 3. 可视化操作界面:描述中提到的工具具有...

    修改文件MD5值.zip

    当我们谈论“修改文件MD5值”时,通常有两种情况: 1. **故意篡改**:在某些特殊情况下,可能需要改变文件的MD5值,比如测试或破解验证机制。但这通常是非法或不道德的,因为MD5的主要用途就是确保数据的完整性。...

    两个MD5相同的文件

    两个MD5相同的文件

    文件MD5值简易计算工具

    如果两个文件的MD5值相同,那么我们可以推断这两个文件内容是完全一致的。 标题“文件MD5值简易计算工具”表明这是一个专门用于计算文件MD5值的应用程序,设计简洁,易于使用,用户可以利用此工具快速获取文件的...

    获取文件md5值的超实用方便的工具.rar

    描述中提到,该工具的主要功能是进行文件的校验,通过计算文件的MD5哈希值,用户可以比对两个版本的文件,如果MD5值相同,那么这两个文件的内容就是一致的,反之则可能存在差异。这对于下载大文件、软件安装包、系统...

Global site tag (gtag.js) - Google Analytics