gpt4 book ai didi

java - Java 中大文件的 MD5 或 SHA 哈希值

转载 作者:太空宇宙 更新时间:2023-11-04 13:24:53 25 4
gpt4 key购买 nike

我需要计算大文件的 SHA 或 MD5 哈希值。我需要做的事情是这样的,我举个例子:

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

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

2)获取第一部分的输出哈希,将其与第二部分一起输入并计算第二部分的哈希

3)获取2)点的输出哈希,将其与第三部分一起输入并计算第三部分的哈希

4)获取第3)点的输出哈希值,将其与第四部分一起输入,并计算整个文件的哈希值。

我在谷歌上搜索了很多,但没有找到类似的东西。我通过使用方法 update 阅读了 MessageDigest,我可以读取文件 block ,直到加载整个文件,然后计算哈希值,但我不明白当我加载一个 block 时,它是否也计算它的哈希值(所以在我的情况下会很好),或者如果它只是一个加载,并且在文件完全加载时计算哈希值。

最佳答案

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

如果您需要这些部分的中间哈希值,您可能会幸运地使用java.security.MessageDigest.clone();在一个部分之后,克隆用于哈希计算的 MessageDigest 实例,并在克隆上调用 digest() 以获取该部分之后的哈希值。

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

关于java - Java 中大文件的 MD5 或 SHA 哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32759956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com