OpenSSL:可以停止对大文件进行哈希处理,稍后再恢复吗?

问题描述 投票:0回答:1

我正在处理跨分布式系统存储的非常大(100GB+)的视频文件。这些文件需要进行哈希处理,但通常在一次操作中计算一台计算机上文件的哈希值并不高效。

有没有办法使用 OpenSSL 来:

  • 在文件中途停止哈希操作
  • 输出哈希算法的内部状态
  • 存储内部状态
  • 稍后通过重新注入内部状态,从中断处恢复哈希操作,并从文件中原始哈希操作停止的点继续?

各种不同的用例:

  1. 文件的各个部分分布在多台计算机上,没有一台计算机拥有整个文件。
  2. 一个文件(完整)存在于多台不同的计算机上。通过在系统 A 上执行哈希的第一部分来分散负载,然后在系统 B 上完成它。
  3. 如果出现网络错误或系统崩溃,能够从中断处恢复哈希操作,而不是从头开始。

我需要使用各种哈希算法:MD5、SHA1、SHA256。

NB 将文件分成块并独立地对每个块进行散列不是一种选择,因为散列通常需要针对例如进行验证。整个文件的已知 MD5 值。

根据我对哈希函数工作原理的理解,这在我看来在理论上是可行的,但我无法从文档中确定是否可以使用 OpenSSL(命令行)。

如果 OpenSSL 不能做到这一点,我会对其他解决方案感兴趣,特别是使用 Node.js 的解决方案。

任何帮助将不胜感激。

node.js hash openssl cryptography
1个回答
0
投票

https://github.com/kislyuk/rehash 在 python 中正是这样做的,但不适用于 OpenSSL 3。

© www.soinside.com 2019 - 2024. All rights reserved.