首页 文章

Java中大型文件的MD5或SHA哈希

提问于
浏览
1

我需要计算一个大文件的SHA或MD5哈希值 . 我需要做的就是这个,我举个例子:

假设我有一个1GB的文件 . 为了计算哈希,我想把这个文件分成4个256MB的部分(我想把它分成更小的部分) .

1)开始计算第一部分的哈希值

2)获取第一部分的输出哈希值,在第二部分的输入中给出它并计算第二部分的哈希值

3)得到2)点的输出哈希值,用第三部分输入它并计算第三部分的哈希值

4)得到3)点的输出哈希值,用第四部分输入它并计算整个文件的哈希值 .

我在谷歌搜索了很多,但我没有发现任何类似的东西 . 我通过使用方法更新阅读使用MessageDigest我可以读取文件块直到整个文件加载然后计算哈希但我还没有理解,当我加载一个块,它也计算它的散列(所以它在我的情况下会好)或者它只是一个加载,并且在文件完全加载时最后计算散列 .

1 回答

  • 0

    您可能还想查看 java.security.DigestInputStream 来计算整个文件的哈希值 .

    如果您需要零件的中间哈希,您可以运气 java.security.MessageDigest.clone() ;部分克隆后,MessageDigest实例用于哈希计算,并在克隆上调用 digest() 以获取部件后的哈希值 .

    可以使用下一部分的字节更新原始MessageDigest实例 .

相关问题