当前位置: 首页 > 面试题库 >

恢复下载的MD5摘要

阎裕
2023-03-14
问题内容

我正在从http服务器下载文件,并且必须考虑到下载过程中的随机时间,网络连接失败或计算机崩溃。如果发生这种情况,我将使用HTTP“ Range:”标头开始恢复下载。

由于必须根据MD5哈希对下载进行验证,因此我似乎没有办法在简历后使用网络输入流来获取正确的哈希,因为java.security.MessageDigest似乎没有基本上说“从我以前下载的部分md5哈希开始更新当前的md5哈希”。

我对md5的内幕不是很熟悉-从理论上讲这是否可行,是否有可以让我做到这一点的库?

从下载的文件计算md5哈希值将是非常昂贵的性能。


问题答案:

您可以将要恢复的文件的内容提供给MD5,然后再将其提供给网络流。

如果您自己实现了MD5,则可以将状态保存在部分下载的文件中,然后从那里继续MD5计算。例如,使用此MD5实施,它应该与保存/加载com.twmacinta.util.MD5State state内部一样简单com.twmacinta.util.MD5。关于您的评论,请注意,本机实现是完全可选的,并且应在纯Java中运行。这是文档中的报价:

当适当的本机库可用时,此类将尝试使用本机方法快速计算校验和[…]如果找不到该库,则代码将回退到默认(较慢)的Java代码。



 类似资料:
  • 问题内容: 我正在尝试从Yahoo!下载大文件!如果没有在100秒之内完成下载,显然是由(不是我)设置的网站服务器断开下载。该文件足够小,通常可以成功传输。在数据速率很慢并且下载被断开的情况下,是否有办法在断开连接发生的文件偏移处恢复URLConnection?这是代码: 问题答案: 尝试使用“范围”请求标头: 完成此操作后,您可以在给定的位置(例如,在下载数据的长度之前)开始在此处写入新下载的数

  • 问题内容: 我编写了一个程序,可以从某些服务器下载一些文件。 当前程序正常运行。 但我想为其添加简历支持。 我正在这样做,但结果文件已损坏: 我正在我知道支持简历的服务器上对其进行测试。 我下载了一些字节。(72720) 然后尝试恢复它。 然后,我使用Hex编辑器打开文件,在偏移量72720处,重复第一个字节: 字节0-36:FLV .............«..... onMetaData 字

  • 问题内容: 在这段代码中,我尝试恢复下载。目标文件为20MB。但是,当我停止在10mb上下载时,然后遇到麻烦,我得到的文件大小为30MB。似乎它继续写入文件,但不能部分从服务器下载。Wget -c非常适合该文件。如何恢复文件下载? 问题答案: 这不是我的代码,但是可以。

  • 我正在使用Python3.5请求模块下载一个文件,使用下面的代码,如何使这段代码“自动恢复”从部分下载的文件下载。 如果可能的话,我宁愿只使用模块来实现这一点。

  • 问题内容: 我正在使用python 2.7请求模块使用以下代码下载二进制文件,如何使此代码从部分下载的文件中“自动恢复”下载。 如果可能的话,我宁愿只使用模块来实现这一目标。 问题答案: 如果Web服务器支持范围请求,则可以将Range标头添加到您的请求中: 您将收到StartPos和StopPos之间的部分。如果不知道StopPos,请使用: 因此您的代码将是:

  • 我可以做DIGEST-MD5认证与Kafka代理和嵌入式zookeeper这是由Kafka,但我得到以下错误消息,而做DIGEST-MD5认证与Kafka代理和非嵌入式zookeeper(单独的zookeeper实例)。 请在下面找到错误消息: